A-A+

jQuery中contents()与children()的区别

2016年01月11日 前端设计 暂无评论 阅读 6 views 次

jQuery中contents()与children()的区别是什么呢?我相信很多朋友对于这两个方法不是很了解了,下面小编为各位介绍它们的区别与用法吧。

1、基本概念

首先呢,这两个方法是有区别的。

ontents() 方法返回所有直接子元素,包括被选元素的文本和注释节点。

文本节点是由元素显示的实际文本。

该方法与 children() 方法类似,不同的是它返回的是文本和注释节点。如果在相同的域中,contents() 方法也能访问 iframe 的 HTML

children()

.children(selector) 方法是返回匹配元素集合中每个元素的所有子元素(仅儿子辈)。参数可选,添加参数表示通过选择器进行过滤,对元素进行筛选。

因此呢,children是contents的子集。

2、文本节点

每个节点都拥有包含着关于节点某些信息的属性。这些属性是:

nodeName(节点名称)

nodeValue(节点值)

nodeType(节点类型)

有效的节点类型包括:

1-ELEMENT (元素)

2-ATTRIBUTE (属性)

3-TEXT (文本)

4-CDATA

5-ENTITY REFERENCE

6-ENTITY

7-PI (processing instruction)

8-COMMENT (注释)

9-DOCUMENT (文档)

10-DOCUMENT TYPE

11-DOCUMENT FRAGMENT

12-NOTATION

例如:

  1. <script>  
  2. $(functions()  
  3. {  
  4.  $('#cc').contents().filter(function()  
  5.  {  
  6.   return this.nodeType==3;//文本节点  
  7.  }).wrap('<strong style="color:red;">');  
  8. });  
  9. </script>  
  10. <div id="cc">  
  11.   <br/>  
  12.   <br/>  
  13.   some  
  14.   <br/>  
  15. </div>  

这个结果是无法用children做出来的。

3、总结

相同点:都可以获得元素的子集。

不同点:contents更获得文本节点和框架内的元素。

标签:

给我留言