jQuery append()
メソッドを使用すると、生成されるHTML出力は意図した順序ではありません。jQuery append()を使ってDOMを広範に挿入する方法(正しい順序)
以下のテストケースで確認したように、私はDIV
タグを開いていないといつでも閉じています。
<ul>
タグも同じです(私が期待する前に閉じていたタグ)。それは、その下にネストされていると考えられる2番目の<li>
タグの後に閉じたいと思っていました。
動的HTMLの大きなブロックを作成順に作成するにはどうすればよいですか?
あなたが追加することを渡し、その後、 最初完全な文字列を構築する必要があり$('#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>
番目のオプションは、 '[ "LINE1"、「LINE2だろうが"、" line3 "]。join(" ")' –
@Sime - このアプローチはオーバーヘッドが少なく、実行時の作業はありません:) –