首頁  >  文章  >  web前端  >  jQuery.contents() 函數詳解

jQuery.contents() 函數詳解

巴扎黑
巴扎黑原創
2017-06-24 11:12:402587瀏覽

contents()函數用來選取目前符合元素的所有子節點(包括文字節點、註解節點等),並以jQuery物件的形式傳回。

此函數屬於jQuery物件(實例)。

語法

jQuery 1.2 新增此函數。

jQueryObject.contents( )

傳回值

contents()函數的回傳值為jQuery類型,傳回一個新的jQuery對象,該對象包含了當前jQuery對象匹配元素的所有子節點(包括元素、文字、註釋等所有類型的節點)。

只要兩個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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn