到目前为止,我已经在
中对此进行了测试以下代码段会导致异常"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将抛出错误。在尝试为元素创建唯一标识符时,我遇到了这个问题。
任何设置不同的人都可以验证此行为吗?
答案 0 :(得分:0)
x.childnodes
返回对第一个孩子的引用(如果你的代码从下一行开始,则可以是\n
,或者因为你的代码在span标记之前有空格,它可以是空格),这是实时的。
如果删除该空格,则为空。
当您执行x.innerHTML ="<div></div>"
表示您实际上正在设置y to null
,因为x
没有子节点