我花了 2 天的时间尝试将这 2 个代码合并为 1 个,因为一个在 IE 中完美运行,另一个在 FF 和 Chrome 中完美运行。那么我怎样才能将它们合并为1呢? 这是在 IE 中运行的代码,但在 FF 中不起作用:
...
if (i < rowCount - 1) {
detRez += dataTable.rows[i].cells[1].firstChild.value + "^";
detRez += dataTable.rows[i].cells[2].firstChild.value + "%";
//This working with FF
//detRez += dataTable.rows[i].cells[1].childNodes[1].value + "^";
//detRez += dataTable.rows[i].cells[2].childNodes[1].value + "%";
}
else {
detRez += dataTable.rows[i].cells[1].firstChild.value + "^";
detRez += dataTable.rows[i].cells[2].firstChild.value;
//This working with FF
//detRez += dataTable.rows[i].cells[1].childNodes[1].value + "^";
//detRez += dataTable.rows[i].cells[2].childNodes[1].value;
}
}
.....
在FF中有效但在IE中无效的在行前面有//
我在 FF 中没有收到任何错误(如果我测试 IE 代码),只是字符串没有正确构建,看起来像这样:undefined^undefine%undefine^undefine 而不是 MyText^.....
有什么想法如何合并这两个代码以在 IE 和 FF 中工作吗?提前致谢。
最佳答案
Firefox 和 Internet Explorer 处理子节点的方式不同。 Firefox 使用 DOM 兼容模式并计算标签之间的间隙等。 Internet Explorer 仅计算其中的一部分(因此两者之间存在不一致)。
您应该考虑使用 getElementsByTagName()
而不是 childNodes[]
。
关于JavaScript 代码无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12297473/