Hoffentlich kann ich meine Frage richtig erklären, so im Vorhinein für jede falsche Verwendung von Jargon oder andere: Ist es möglich, mit JavaScript die Original-Markup wie im Quellcode eher angezeigt dann der Code aus dem DOM, nachdem es 'geändert' wurde Angenommen, ein Element # div1 hat den eigentlichen Text, der in einem anderen Element mit der ID # div2 verwendet wird, im Quellcode ist der Text in # div1 aber in sichtbar das DOM beim Überprüfen von # div1 wird leer sein und # div2 wird diesen Text haben, Ich weiß, dass es eine Frage der Reihenfolge des Ladens der Skripte sein würde, aber ich hatte gehofft, dass es einen anderen Weg geben könnte. Hoffentlich macht das einen Sinn.Greifen Sie auf View-Source anstelle von vorbereiteten DOM zu
Antwort
Ja, der einfachste Weg, um auf Original-HTML zuzugreifen, ist, den JS-Code vor anderen Skripten zu platzieren (oder nur Bibliotheken wie jQuery vorher zu platzieren).
Die zweite Möglichkeit ist, Dokument erneut mit AJAX zu laden, zu analysieren und zu bekommen, was Sie wollen. Hier ist ein Codebeispiel:
<div id="div1">
Hello
</div>
<div id="div2">
</div>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script>
$('#div2').html($('#div1').html())
$('#div1').html('')
</script>
<script>
alert($('#div1').html())
// ajax get
// empty string in get request means current location
$.get("", function (html) {
var el = $(html).filter('#div1');
alert(el.html())
});
</script>
Hallo @DimalIt, das kommt als undefined für mich zurück: [jsfiddle] (https://jsfiddle.net/gtp4y700/) – asturnick
Ich vermeide speziell jsfiddle, weil Anfragen sich dort unerwartet verhalten können. Hier ist das innere Fenster von deiner Geige: [link] (https://fiddle.jshell.net/gtp4y700/show/). Für mich funktioniert es gut. Aber natürlich ist es besser, auf Ihrer eigenen Seite zu testen. UPD: Original Fiddle funktioniert auch, wenn Sie Seite aktualisieren und nicht auf Ausführen klicken. – DimaIT
@DimalIt, ja funktioniert in Ordnung, vielen Dank! – asturnick
- 1. Greifen Sie auf Djangos field.choices zu
- 2. Wie greifen Sie auf exportierte Funktionen von einander zu?
- 3. Wie greifen Sie auf In-Memory-Services von Webanwendungen zu?
- 4. So greifen Sie auf MySQL-Daten auf Amazon EBS zu
- 5. Wie greifen Sie auf Hardwaredekodierung auf tvOS ohne VideoToolbox zu?
- 6. Eine andere ViewSource in WPF zuweisen
- 7. So greifen Sie auf Android Phone DRAM und anderen Speicher anstelle von SD
- 8. Wie greifen Sie auf Eigenschaften der Basisklasse in Typescript zu?
- 9. So greifen Sie auf das übergeordnete Formular in Delphi zu
- 10. Greifen Sie programmatisch auf alle neuen Chrome-Benachrichtigungen zu
- 11. So greifen Sie über die Powershell auf einen Webdienst zu?
- 12. Wie greifen Sie auf den Inhalt eines ASP.NET-Steuerelements zu?
- 13. So greifen Sie auf die JavaScript-Rechtschreibprüfung in JavaScript zu
- 14. Greifen Sie auf HTTP-Antwortheader für das flash.net.URLLoader-Objekt zu?
- 15. Greifen Sie auf einen allgemeinen Crawl-AWS-öffentlichen Datensatz zu
- 16. So greifen Sie auf lokale Kacheln in Android Phone zu:
- 17. Greifen Sie auf die Zeilennummer über ihren Index zu
- 18. So greifen Sie auf die übergeordneten Elemente der Thickbox zu
- 19. So greifen Sie auf die Android Annotation sharedPreference zu?
- 20. So greifen Sie auf eine Liste in OCaml zu
- 21. Gibt es einen besseren Ansatz, Variablen sicher anstelle von vorbereiteten Anweisungen zu übergeben?
- 22. Wie greifen Sie auf Trackpad-Gesten in Delphi-Berlin zu?
- 23. Symfony - So greifen Sie auf das Repository der Entität zu
- 24. So greifen Sie auf die Sitzungsvariable in der Steuerung zu
- 25. XML: Greifen Sie auf verschachtelte Elemente mit demselben Namen zu
- 26. Greifen Sie auf hochgeladenes Bild in Sails.js Backend-Projekt zu
- 27. Wie greifen Sie auf den aktuellen Benutzereintrag im Adressbuch zu?
- 28. Greifen Sie auf XML-Attribut in JSP zu
- 29. Wie greifen Sie auf die Bildnummer in AVAsynchronousCIImageFilteringRequest zu?
- 30. PHP - Greifen Sie nur auf meine Website zu
vielleicht senden Sie eine Ajax-Anfrage und erhalten Sie volle rohe Antworttext. – Webinan
Verwenden Sie $ (Dokument) .ready, um Ihre Funktion zu registrieren. Sie müssen Ihr Skript zuerst auf der Seite laden, damit Ihr Rückruf zuerst ausgeführt wird. Innerhalb Ihres Callbacks können Sie den vollständigen HTML-Code der aktuellen Seite oder Teile davon mit '.html()' z. 'var x = $ ('html'). html();' – lud1977
Von dem, was ich verstand, möchten Sie Text aus # div1 nach dem Laden der Seite ausschneiden und in # div2 einfügen. Ist das korrekt? – Azamantes