children 和childNodes 的区别

1:childNodes /children相同点:它返回指定元素的子元素集合


2:区别:children :  它是非标准的,仅返回HTML节点。甚至不返回文本节点。所有浏览器表现一 致。

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

 js操作document时,试图使用childNodes取得Div节点的Div子节点,IE浏览器中没有任何问题,
 而FF浏览器会将TEXT_NODE类型的节点同样计入子节点,这样就会操作到错误的对象。可以在循环中添加if(obj.nodeType==3){continue;}else{do something...}来兼容。

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

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

posted @ 2016-04-28 19:23  好好听我说  阅读(871)  评论(0编辑  收藏  举报