>웹 프론트엔드 >JS 튜토리얼 >jQuery.contents() 함수에 대한 자세한 설명

jQuery.contents() 함수에 대한 자세한 설명

巴扎黑
巴扎黑원래의
2017-06-24 11:12:402610검색

contents() 함수는 현재 일치하는 요소(텍스트 노드, annotation노드 등 포함)의 모든 하위 노드를 선택하고 이를 jQuery 개체 형식으로 반환하는 데 사용됩니다.

이 함수는 jQuery 객체(인스턴스)에 속합니다.

Syntax

이 함수는 jQuery 1.2의 새로운 기능입니다.

jQueryObject.contents( )

return value

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 샘플 코드는 content() 함수의 구체적인 사용법을 보여주기 위해 사용됩니다.

//返回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으로 문의하세요.