Wenn ich die jQuery append()
Methode verwende, ist die resultierende HTML-Ausgabe nicht in der Reihenfolge, die ich beabsichtige.Wie führe ich eine ausführliche DOM-Einfügung mit jQuery append() (in der richtigen Reihenfolge) durch?
Wie Sie in dem Testfall unten sehen, jedes Mal, wenn ich ein DIV
Tag öffne, ohne es zu schließen, ist es dennoch geschlossen.
Das gleiche gilt für die <ul>
-Tag - die auch geschlossen wurde, bevor ich erwartete - ich wollte, dass es nach dem zweiten Tag <li>
geschlossen wird, die darunter geschachtelt werden soll.
Was ist der beste Weg, um einen großen Block von dynamischem HTML in der Reihenfolge, in der es geschrieben ist, zu erstellen?
$('#a').remove(); // remove #a from the dom and re-insert it dynamically
$("<div id='a'>").insertAfter('div#main');
$('#a').append(" <ul>");
$('#a').append(" <li>A</li>");
$('#a').append(" <li>B</li>");
$('#a').append(" </ul>");
$('#a').append(" <div id='X1'>");
$('#a').append(" <div id='b'>");
$('#a').append(" <div id='b1'></div>");
$('#a').append(" <div id='b2'></div>");
$('#a').append(" </div>");
$('#a').append(" <div id='c'>");
$('#a').append(" <p id='c1'></p>");
$('#a').append(" </div>");
$('#a').append(" </div>");
$('#a').append(" <div id='X2'>B</div>");
$('#a').append("</div>");
<div id="main>
<div id="a>
<ul></ul> // <ul> tag is closed!?
<li>A</li>
<li>B</li>
<div id='X1'></div> // div is closed!?
<div id='b'> // div is closed!?
<div id='b1'></div>
<div id='b2'></div>
<div id='c'></div> // div is closed!?
<p id='c1'></p>
<div id='X2'>B</div>
</div>
</div>
Eine dritte Option wäre '[ "line1",„line2 "," line3 "]. join (" ")' –
@Sime - True, obwohl dieser Ansatz weniger Aufwand hat, funktioniert hier keine Laufzeit :) –