到目前为止,我已经在
- IE 10 win8
- IE 8,9 模拟 win8
以下代码片段将导致异常"invalid argument"
。我做了一些快速的研究,没有发现任何地方报告此错误......
var x = document.createElement('div');
x.innerHTML = "a text node is here and intended <span>stuff</span>";
var y = x.childNodes[0];
y.nodeValue; //doesnt throw
x.innerHTML = "<div></div>";
y.nodeValue; //Throws "invalid argument" in ie when accessing nodeValue or just about any other property
如果您尝试访问已删除文本节点上的几乎任何属性,IE 10 将引发错误。我在尝试为元素创建唯一标识符时遇到了这个问题。
具有不同设置的任何人都可以验证此行为吗?
x.childnodes
返回对第一个子项的引用(如果您的代码从下一行开始,它可以是n
,或者因为您的代码在span标记之前有空格,因此它是空闲的,这是实时的。
如果删除该空格,则会得到 null。
当你这样做时x.innerHTML ="<div></div>"
意味着你实际上是在设置y to null
,因为x
没有子节点