IE11部分版本中表格行克隆时cells[]赋值失效问题咨询
关于IE11旧版本中
cells[]属性失效的原因分析 嘿,这个问题其实是IE11不同版本对DOM元素克隆后属性支持的差异导致的,我来给你拆解清楚:
克隆节点时的
cells集合初始化bug
在旧版IE11(比如你提到的11.0.9600.18499)中,当使用cloneNode(true)克隆表格行<tr>时,浏览器并没有正确初始化克隆后行元素的cells集合属性。而较新的IE11版本(11.309.16299.0)已经修复了这个DOM解析的bug,能够正常生成cells集合供你调用。兼容所有IE11版本的替代方案
既然直接用new_row.cells[]在旧版里行不通,你可以换成更稳定的方式获取单元格:- 使用
querySelector精准定位:new_row.querySelector('td:first-child').innerHTML = len; - 或者通过遍历子元素筛选(注意过滤文本节点):
var firstCell; for (var i = 0; i < new_row.childNodes.length; i++) { if (new_row.childNodes[i].tagName === 'TD') { firstCell = new_row.childNodes[i]; break; } } firstCell.innerHTML = len;
- 使用
补充说明
IE11的不同发布版本其实存在不少DOM API的兼容性小问题,尤其是早期版本,微软后续通过系统更新补丁逐步修复了这些细节问题。你的测试结果也印证了这一点——移除cells[]相关代码后函数正常运行,说明核心逻辑没问题,就是这个cells集合初始化的bug在搞鬼。
内容的提问来源于stack exchange,提问作者Jian wei
相关产品推荐
相关产品推荐

