当前位置: 首页 > 中文手册 > jQuery.contents() 函数详解

jQuery.contents() 函数详解

contents()函数用于选取当前匹配元素的所有子节点(包括文本节点、注释节点等),并以jQuery对象的形式返回。

该函数属于jQuery对象(实例)。

语法

jQuery 1.2 新增该函数。

jQueryObject.contents( )

返回值

contents()函数的返回值为jQuery类型,返回一个新的jQuery对象,该对象包含了当前jQuery对象匹配元素的所有子节点(包括元素、文本、注释等所有类型的节点)。

只要两个HTML标记之间存在任何空白字符(空格、换行符等),就会被视作文本节点。

如果元素是一个<iframe>,则选取该文档的所有文档节点。

如果没有匹配的元素,则返回空的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

运行代码

18 4
我们认为: 用户的主要目的,是为了获取有用的信息,而不是来点击广告的。因此本站将竭力做好内容,并将广告和内容进行分离,确保所有广告不会影响到用户的正常阅读体验。用户仅凭个人意愿和兴趣爱好点击广告。
我们坚信:只有给用户带来价值,用户才会给我们以回报。
CodePlayer技术交流群1CodePlayer技术交流群1

帮朋友打一个硬广告:

P2P网贷系统(Java版本) 新年低价大促销,多年P2P技术积累,系统功能完善(可按需定制,可支持第三方存管、银行存管),架构稳定灵活、性能优异、二次开发快速简单。 另可提供二次开发、安装部署、售后维护、安全培训等一条龙服务。

外行看热闹,内行看门道。可以自信地认为,在系统设计上,比市面上的晓风、迪蒙、方维、绿麻雀、国融信、金和盛等P2P系统要好。
深圳地区支持自带技术人员现场考察源代码、了解主要技术架构,货比三家,再决定是否购买。

也可推荐他人购买,一旦完全成交,推荐人可获得实际售价 10% 的返现。
有意向者,详情请 点击这里 联系,工作时间立即回复。