A-A+
jQuery中contents()与children()的区别
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
例如:
- <script>
- $(functions()
- {
- $('#cc').contents().filter(function()
- {
- return this.nodeType==3;//文本节点
- }).wrap('<strong style="color:red;">');
- });
- </script>
- <div id="cc">
- <br/>
- <br/>
- some
- <br/>
- </div>
这个结果是无法用children做出来的。
3、总结
相同点:都可以获得元素的子集。
不同点:contents更获得文本节点和框架内的元素。