jQuery paglalakbay - contents() method
Halimbawa
Hanapin ang lahat ng text nodes sa mga paragrafo at i-wrap nila sa bold tag.
$("p").contents().filter(function(){ return this.nodeType != 1; }).wrap("<b/>");
Definisyon at paggamit
Ang contents() method ay nagbibigay ng mga anak ng bawat elementong tumutugma sa koleksyon ng tumugma, kasama ang mga text at comment nodes.
Gramata
.contents()
Detalyadong paglalarawan
Kung ibinigay ang jQuery object na naglalarawan ng koleksyon ng DOM element, ang .contents() method ay nagbibigay sa amin ng kakayahan na hanapin ang direktang mga anak ng mga elementong ito sa DOM tree at gumawa ng bagong jQuery object na gumagamit ng naabot na mga elementong ito. .contents() at .children() 方法は似ていますが、前者はテキストノードと HTML エレメントを含む結果の jQuery オブジェクトに含まれています。
.contents() メソッドは、iframe がメインページと同じドメインにある場合、iframe の内容ドキュメントを取得するために使用することもできます。
以下に示すテキストノードを持つ <div>を考えてみてください、各ノードは二つの折り返し要素 (<br />) で区切られています:
<div class="container"> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. <br /><br /> Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. <br /> <br /> Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. </div>
私たちは .contents() メソッドを使用して、テキストブロックを形式の良いパラグラフに変換することができます:
$('.container').contents().filter(function() { return this.nodeType == 3; ) .wrap('<p></p>') .end() .filter('br') .remove();
此コードはまず <div class="container"> の内容を受け取り、テキストノードをパラグラフタグに包装し、テキストノードをフィルタリングします。これはテスト要素の .nodeType 属性を通じて実現されます。この属性には、ノードタイプを示す数字コードが含まれています;テキストノードはコード 3 を使用します。内容は再びフィルタリングされ、この回では <br /> エレメントに対して、これらの要素は削除されます。