children和childNodes的区别

1.childNodes 属性,标准的,它返回指定元素的子元素集合,包括HTML节点,所有属性,文本。可以通过nodeType来判断是哪种类型的节点,只有当nodeType==1时才是元素节点,2是属性节点,3是文本节点。

有些人错误的使用()去取该集合元素,下表列出各浏览器对childNodes(i)的支持情况:

  IE6/7/8/Safari/Chrome/Opera IE9/Firefox
childNodes(i) 支持 不支持

有时候需要获取指定元素的第一个HTML子节点(非属性/文本节点),最容易想到的就是firstChild 属性。代码中第一个HTML节点前如果有换行,空格,那么firstChild返回的就不是你想要的了。可以使用nodeType来判断下。


1

2

3

4

5

6

function getFirst(elem){

    for(var i=0,e;e=elem.childNodes[i++];){

        if(e.nodeType==1)

            return e;

    }      

}

2,children 属性,非标准的,它返回指定元素的子元素集合。经测试,它只返回HTML节点,甚至不返回文本节点。且在所有浏览器下表现惊人的一致。和childNodes 一样,在Firefox下不支持()取集合元素。因此如果想获取指定元素的第一个HTML节点,可以使用children[0]来替代上面的getFirst函数。需注意children在IE中包含注释节点。

时间: 2024-08-24 13:29:34

children和childNodes的区别的相关文章

JavaScript中Element与Node的区别,children与childNodes的区别

关于Element跟Node的区别,cilldren跟childNodes的区别很多朋友弄不清楚,本文试图让大家明白这几个概念之间的区别. Node(节点)是DOM层次结构中的任何类型的对象的通用名称,Node有很多类型,如元素节点,属性节点,文本节点,注释节点等,通过NodeType区分,常见的有: 节点类型 NodeType 元素element 1 属性attr 2 文本text 3 注释comments 8 文档document 9 更多节点类型参考:https://developer.m

children 和childNodes 的区别

1:childNodes /children相同点:它返回指定元素的子元素集合. 2:区别:children :  它是非标准的,仅返回HTML节点.甚至不返回文本节点.所有浏览器表现一 致. childNodes :它是标准的,返回包括HTML节点,所有属性,文本.可以通过nodeType来判断是哪种类型的节点, 当nodeType==1是元素节       点,2是属性节点,3是文本节点. js操作document时,试图使用childNodes取得Div节点的Div子节点,IE浏览器中没有

parentNode、parentElement,childNodes、children 它们有什么区别呢?

parentNode.parentElement,childNodes.children 它们有什么区别呢?parentElement 获取对象层次中的父对象. parentNode 获取文档层次中的父对象. childNodes 获取作为指定对象直接后代的 HTML 元素和 TextNode 对象的集合. children 获取作为对象直接后代的 DHTML 对象的集合. -------------------------------------------------------- pare

jquery遍历之children()与find()的区别

hildren(selector) 方法是返回匹配元素集合中每个元素的所有子元素(仅儿子辈).参数可选,添加参数表示通过选择器进行过滤,对元素进行筛选. .find(selector)方法是返回匹配元素集合中每个元素的后代.参数是必选的,可以为选择器.jquery对象可元素来对元素进行筛选. .find() 与 .children() 方法类似,不同的是后者仅沿着 DOM 树向下遍历单一层级.这里的children,我理解为儿子,只在儿子这一级遍历.看下例子: [html] view plain

基于jquery中children()与find()的区别介绍

本篇文章介绍了,基于jquery中children()与find()的区别,需要的朋友参考下 .children(selector) 方法是返回匹配元素集合中每个元素的所有子元素(仅儿子辈).参数可选,添加参数表示通过选择器进行过滤,对元素进行筛选. .find(selector)方法是返回匹配元素集合中每个元素的后代.参数是必选的,可以为选择器.jquery对象可元素来对元素进行筛选. .find() 与 .children() 方法类似,不同的是后者仅沿着 DOM 树向下遍历单一层级.这里的

jQuery 中的children()和 find() 的区别

<!DOCTYPE html> <html> <head> <script type="text/javascript" src="/jquery/jquery.js"></script> </head> <body> <ul class="level-1"> <li class="item-i">I</li>

children childNodes 的区别

1,childNodes 属性,标准的,它返回指定元素的子元素集合,包括HTML节点,所有属性,文本.可以通过nodeType来判断是哪种类型的节点,只有当nodeType==1时才是元素节点,2是属性节点,3是文本节点. 2,children 属性,非标准的,它返回指定元素的子元素集合.经测试,它只返回HTML节点,甚至不返 回文本 节点.且在所有浏览器下表现惊人的一致.和childNodes 一样,在Firefox下不支持()取集合元素.因此如果想获取指定元素的第一个HTML节点,可以使用c

JS中children与childNodes区别

children返回指定元素的子结点集合,只包含HTML结点. childNodes返回的子结点集合中不仅包含HTML结点,还包含属性,文本.可以通过nodeType来判断是哪种类型的节点,只有当nodeType==1时才是元素节点,2是属性节点,3是文本节点.可以通过如下代码判断元素结点个数 var list = document.getElementById("div1").childNodes; var count2 = 0; for(i = 0;i<list.length

JavaScript - Node.children和Node.childNodes的区别

写到这个也是因为群里的学长面试的时候遇到了这个问题,然后顺手分享了一下 首先是MDN里面对两个API的解释 children Node.children is a read-only property that returns a live HTMLCollection of the child elements of Node. childNodes The Node.childNodes read-only property returns a live collection of chil