私が知る限り、次のコードが機能し、要素を作成してから<div>
要素を作成する必要が<p>
あります。式は、次の2つの要素を持つjQueryオブジェクトになります。
$("<div>first element's content</div>").after("<p>second element's content</p>");
しかし、私が得るものは非常に異なります。ドキュメント(「切断されたDOMノードの挿入」の見出しを参照)は、上記のコードがjQueryオブジェクトになり、両方のHTMLスニペットを取得して2つのDOM要素を構築する必要があることを示しています。しかし、私が得たのは、すべて1.4を超えるいくつかの異なるバージョンのjQueryで、ノードが1つしかないjQueryオブジェクトです。ただし、次のコードは問題なく機能し、正しいjQueryオブジェクト(内部に2つの要素)を返します。
$("<div></div>").after("<p>second element's content</p>");
そして、この例も同様に機能します。
$("<div></div>").after("<p>second element's content</p>").after("<p>third element's content</p>");
作成される最初のDOMノードが空の場合、このメソッドは正常に機能するようです.after()
が、空でない場合は機能しません(追加される後続のDOMノードの内容に関係なく)。
jQueryの内部、風変わりなDOMの問題、JavaScriptの特性について何かが足りないのでしょうか、それともバージョン1.4から1.7まで続くjQueryのバグでしょうか。
(これは、問題をかなりわかりやすく示しているわずかなJSFiddleです。)