jQuery.contents()関数の詳しい説明

巴扎黑
巴扎黑オリジナル
2017-06-24 11:12:402610ブラウズ

contents() 関数は、現在一致する要素 (テキスト ノード、annotation ノードなどを含む) のすべての子ノードを選択し、それを jQuery オブジェクトの形式で返すために使用されます。

この関数はjQueryオブジェクト(インスタンス)に属します。

構文

この関数はjQuery 1.2で追加されました。

jQueryObject.contents( )

戻り値

contents()関数の戻り値はjQuery型で、現在のjQueryオブジェクトの一致する要素のすべての子ノードを含む新しいjQueryオブジェクトを返します。 (要素、テキスト、コメントなどのすべてのタイプのノードが含まれます)。

2 つの HTML タグの間に空白文字 (スペース、改行など) がある限り、それらはテキスト ノードとして扱われます。

要素が d5ba1642137c3f32f4f4493ae923989c の場合、ドキュメントのすべてのドキュメント ノードを選択します。

一致する要素がない場合は、空の jQuery オブジェクトが返されます。

例と説明

次の HTML コードを例として取り上げます:

<p id="n1">
    Hello
    <span id="n2">
        CodePlayer
        <span id="n3">A</span>
    </span>
    <!-- 注释内容 -->
    <span id="n4">
        B
        <label id="n5"></label>     
    </span>
</p>

次の jQuery サンプル コードは、contents() 関数の具体的な使用法を示すために使用されます:

//返回jQuery对象所有匹配元素的标识信息数组
//每个元素形如:[文本内容]、[--注释内容--]或#id
function getTagsInfo($doms){
    return $doms.map(function(){
        if(this.nodeType == 3){ // 文本节点
            return "[" + this.nodeValue + "]";
        }else if(this.nodeType == 8){ // 注释节点
            return "[--" + this.nodeValue + "--]";
        }else{
            return "#" + this.id; 
        }
    }).get();
}
// 匹配n1元素所有的子节点(包括文本节点、注释节点等,下同)
var $n1_contents = $("#n1").contents();
document.writeln( getTagsInfo( $n1_contents ) ); // [ Hello ],#n2,[ ],[-- 注释内容 --],[ ],#n4,[ ]
//匹配span元素所有的子节点
var $span_contents = $("span").contents();
document.writeln( getTagsInfo( $span_contents ) ); // [ CodePlayer ],#n3,[ ],[A],[ B ],#n5,[ ]
// 匹配span元素所有子节点中的非Element节点
var $span_text = $span_contents.filter( function(){
    return this.nodeType != 1;  
} );
document.writeln( getTagsInfo( $span_text ) ); // [ CodePlayer ],[ ],[A],[ B ],[ ]
//匹配n5元素所有的子节点,n5标签中没有任何内容,因此返回空的jQuery对象,匹配0个元素
var $n5_contents = $("#n5").contents();
document.writeln( $n5_contents.length ); // 0

以上がjQuery.contents()関数の詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。