IE9下childNodes属性值的错乱

来源:互联网 发布:淘宝店铺复制好吗 编辑:程序博客网 时间:2024/05/16 07:46

 

如下代码:

 

 

通常引用表格内某单元格文本值时,直接使用src.childNodes[i].innerText,但升级到IE9后,发现src.childNodes[0].innerText是空值,src.childNodes[1].innerText才是第一个单元格的值,下标为2时空值,为3时才是第二个单元格值。

通过函数tt()发现,遍历元素后,每个单元格之间都加了一个空值,真是感到很奇怪。通常网上资料查找,有人已经给出IE9下childNodes属性值与其他情况下的区别。

以下为摘要:

 

 

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

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

 IE6/7/8/Safari/Chrome/OperaIE9/FirefoxchildNodes(i)支持不支持

 

 

 

IE9、火狐使用DOM规范,childNodes中会插入空白文本节点。一般可以通过node.getElementsByTagName()来回避这个问题。

 

如 var curtds=src.getElementsByTagName("TD");alert(curtds[1].innerText);

 

引用资料:

 

http://archive.cnblogs.com/a/1980085/

 

http://www.poluoluo.com/jzxy/201007/90280.html

 

 

原创粉丝点击