Javascript IE在访问textNode属性时引发异常

Javascript IE在访问textNode属性时引发异常,javascript,internet-explorer,runtime-error,internet-explorer-10,Javascript,Internet Explorer,Runtime Error,Internet Explorer 10,到目前为止,我已经测试了这个 IE 10 win8 IE 8,9模拟win8 以下代码段将导致异常“无效参数”。我做了一些快速的研究,并没有发现这个错误报告的任何地方 var x = document.createElement('div'); x.innerHTML = "a text node is here and intended <span>stuff</span>"; var y = x.childNodes[0]; y.nodeValue; //doe

到目前为止,我已经测试了这个

  • IE 10 win8
  • IE 8,9模拟win8
以下代码段将导致异常
“无效参数”
。我做了一些快速的研究,并没有发现这个错误报告的任何地方

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
var x=document.createElement('div');
x、 innerHTML=“此处有一个文本节点,并显示所需内容”;
变量y=x.childNodes[0];
y、 无价值//不扔
x、 innerHTML=“”;
y、 无价值//访问nodeValue或任何其他属性时在ie中抛出“无效参数”
如果您试图访问删除的文本节点上的几乎任何属性,IE10将抛出一个错误。我在尝试为元素创建唯一标识符时遇到了这个问题


具有不同设置的任何人都可以验证此行为吗?

x.childnodes
返回对第一个子节点的引用(如果您的代码从下一行开始,它可以是
\n
,或者是空的,因为您的代码在span标记之前有空格),这是活动的

如果删除该空格,则会得到null


当您执行
x.innerHTML=”“
时,意味着您实际上正在将
y设置为null
,因为
x
没有子节点

y
仍将指向删除的文本节点,其属性应保持不变。此代码段将在chrome、firefox和safariNo中工作,但不会,请检查一次,由于span标记前的空格,它将显示空值,如果删除此代码段,则span标记前的空格都将为null。我更新了op,让它更清晰