すべてのHTMLコンテンツを別の要素(たとえば、div
1つ)にラップする必要があります。したがって、このコード:
var myJqEl = $('<div><div id="myDiv">Div content<span>Span content</span></div><p>P content</p></div>');
したがって、必要な正しい要素が得られ、それにメソッドを使用できますfind
。
詳細については:
を使用して新しい要素を作成すると$
、jQueryはそれと呼ばれるオブジェクトを作成しますWrapped Set
。このラップされたセットは実際にはjavascript配列であるため、次のようなものを作成すると次のようになります。
$('<div id="myDiv">Div content<span>Span content</span></div><p>P content</p>');
2つのオブジェクトを持つ配列があります。最初のオブジェクトはあなたのものdiv
で、2番目のオブジェクトはp
です。google chrome Web Inspectorには、次のようなものが表示されます。
[<div id="myDiv">…</div>, <p>P content</p>]
find
ラップされたセットのようなメソッドを使用すると、最初の要素(div
この例ではタグ)で実行されます。
mynewEl2
これが、正しいデータを返す理由です。タグは(ラップされたセットの最初の要素)にspan
存在するため、タグ自体にはタグがありません。だから空です。div
div
div
mynewEl1
また、すべてのHTMLデータを1つのタグにラップすると、ラップされたセットには1つの要素のみが含まれ、すべてのHTMLデータがそこに存在します。