0

この jQuery 機能がどのように機能するのか、常に疑問に思っていました。$('<span>Hello world</span>')[0] これは、新しく作成されたスパン要素への参照を返すことになっています。ネイティブ DOM メソッドを使用して同じ結果を得るにはどうすればよいですか? 隣接HTMLを挿入しますか? インナーHTML? ドキュメントフラグメント? createElement/appendChild を使用せずに、HTML フラグメントを挿入し、外側の要素への参照を保持する必要があります。

ありがとう。

4

1 に答える 1

0

要素を作成し、その innerHTML を設定して、最初の子を返すことができます。コンテナー要素が DOM に追加されることはありません。

var el = document.createElement('div');
el.innerHTML = '<span>Hello world</span>';
console.log(el.firstChild);

それが関数にラップされている場合、子が別の場所に追加されるとすぐに、元のコンテナーがガベージ コレクションの対象になると思います。

jQuery は、文字列に単一のタグが含まれているかどうかをチェックし、より複雑な文字列のフラグメントを作成するなど、より洗練された処理を行っているようです。jQuery のソース コードのメソッドを参照してparseHTMLください

于 2013-03-13T14:44:35.607 に答える