Ich suche nach Ideen zur Erkennung von Objekten im HTML-DOM, die jedoch nicht explizit in der HTML-Quelle dargestellt werden.
Wie Sie vielleicht wissen, habe ich eine HTML-Quelle, die folgendes enthält:
%Vor% ... das HTML-DOM fügt das <tbody>
-Objekt in der Objektbaumstruktur hinzu, ohne den Quellcode zu ändern, wobei zu beachten ist, dass der Quellcode dies beinhaltet. Im DOM ist die Struktur also so, als wäre die HTML-Quelle:
Ich habe eine JavaScript-Funktion, die den DOM-Baum durchläuft, und ich muss erkennen, wenn ich über ein implizites Objekt gelaufen bin, das heißt, es ist im DOM, aber nicht in der HTML-Quelle.
Irgendwelche Ideen wie man das macht? Vielleicht gibt es ein Attribut im Objekt, das angibt, ob es von der Quelle stammt oder nicht?
Neue Idee basiert auf Alex Idee. Es ist immer noch erforderlich, das gesamte DOM erneut abzurufen, aber es ist unmöglich, etwas anderes zu tun. Sie können diese logische Server-Seite implementieren, wenn es in Ihrer App möglich ist. Verwenden von jQuery für die Kürze:
%Vor%, die Ihnen eine Liste aller eingefügten Elemente gibt :) Möglicherweise benötigen Sie eine Verfeinerung, z. um die Anführungszeichen, die zu class="
passen, da ein Zitat dort technisch optional ist. Auch nicht getestet, sollte aber funktionieren.
Beachten Sie, dass Sie neue -Elemente mit dieser Methode zurückerhalten, nicht die, die derzeit in Ihrem DOM vorhanden sind. Wenn dies also wichtig ist, beachten Sie sie.
Wenn Sie Ihren Kommentar lesen, müssen Sie nur feststellen, ob ein <tbody>
-Tag vom Rendering-Prozess hinzugefügt wurde, anstatt in der Quelle vorhanden zu sein?
Wenn ja, warum nicht die Quelle ändern, die <tbody>
enthält, indem Sie das Attribut <tbody class="exp">
anwenden, dann wissen Sie beim Durchlaufen des DOM, dass jeder tbody-Knoten, der dieses Attribut nicht besitzt, von der Rendering-Engine eingefügt wurde.
Darf auf dem document.body.onload
der Zeichenfolge des ursprünglichen document.body.innerHTML
Wenn Sie die Überprüfung durchführen möchten, testen Sie zuerst, ob sie noch immer gleich sind.
Wenn nicht beide Strings vergleichen und die Unterschiede finden.
Ich denke, das ist in Ordnung, wenn Sie keine zu schwere Seite haben.
Tags und Links javascript html