すべてのHTMLコンテンツを別の要素(たとえば、div1つ)にラップする必要があります。したがって、このコード:
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存在するため、タグ自体にはタグがありません。だから空です。divdivdivmynewEl1
また、すべてのHTMLデータを1つのタグにラップすると、ラップされたセットには1つの要素のみが含まれ、すべてのHTMLデータがそこに存在します。