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) | 支持 | 不支持 |