children和childNodes 的区别

转载 2015年11月18日 11:22:52

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中包含注释节点。

相关文章推荐

children和childNodes 的区别

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

childNodes与children区别

获取节点信息是js中必不可少的操作,那么childNodes和children有什么区别呢? instanceof用来判断获取的节点的类型 测试对象在其原型链中是否存在一个构造函数的prototy...

childNodes和children的区别

///

关于childNodes及children的区别(图文结合)

在定义上来说childNodes是属于一种标准型属性,它会计算上包括空格的所有节点,所以在选择childNodes[i]时,我认为是一件比较麻烦的事情。而children是属于非标准型,不过它还是依旧...
  • look55
  • look55
  • 2016年04月07日 18:54
  • 111

JS children和childNodes的区别

属性介绍 children children:返回父元素所有的直系子节点的集合,注意,children只返回HTML元素节点,不包括文本节点和属性节点。 childNodes childNodes...

children与childNodes的区别

乍一看  感觉一样  平时用的时候也没怎么留意 其实区别还是有点儿大    传言啊  这个 childNodes是正统属性   亲生的    而这个children是野孩子    这个野孩...
  • yhn1121
  • yhn1121
  • 2016年09月07日 17:23
  • 1710

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

JavaScript中Element与Node的区别,children与childNodes的区别   本文首发博客园:http://jscode.cnblogs.com,转载请...

javascript 中 parentNode,childNodes、children 应用

"parentNode"常用来获取某个元素的父节点. 把 parentNodes 理解为容器, 在容器中有个子节点     例: My text 在上面的代码中, 你看到把"爹"作为一个 div 容器...

parentNode,childNodes、children 的使用

"parentNode" 常用来获取某个元素的父节点. 把 parentNodes 理解为容器, 在容器中有个子节点      例: My text 在上面的代码中, 你看到把"爹...

childNodes,children和noteType

childNodes,children和noteType的使用
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:children和childNodes 的区别
举报原因:
原因补充:

(最多只允许输入30个字)