Javascript

Javascript ,javascript,html,internet-explorer,cross-browser,internet-explorer-11,Javascript,Html,Internet Explorer,Cross Browser,Internet Explorer 11,下面的例子将解释我的意思 var ps=document.body.getElementsByTagName('p'); var ps2=document.body.querySelectorAll('p'); console.log(ps.length);//3. document.body.removeChild(ps[0]); console.log(ps.length);//2. console.log(ps2.length);//3 你好 你好 您好我想这是因为clonedOptio

下面的例子将解释我的意思

var ps=document.body.getElementsByTagName('p');
var ps2=document.body.querySelectorAll('p');
console.log(ps.length);//3.
document.body.removeChild(ps[0]);
console.log(ps.length);//2.
console.log(ps2.length);//3
你好

你好


您好

我想这是因为
clonedOptions
中的一些
选项
已经不存在了,而且您每天都使用
clonedOptions
的原始版本times@Hacketo,它在除IE11之外的所有浏览器中都能工作是的,我读了代码,它应该能工作,但我们说的是IE ^ ^,抛出错误的行是什么?@Hacketo,查看我的更新question@Hacketo在IE changelist指南中,我在谷歌的某个地方看到,IE 11不再支持全局变量。在克隆上使用了
getElementsByTagName
,“cloneNode()返回的重复节点”“这是否意味着克隆节点上的
getElementsByTagName
没有意义?他没有从任何位置删除
clone
中的项目。”。你知道为什么
clone
会被垃圾回收吗?没错,它似乎解决了这个问题。。。希望有人能接受我开始的内容并使用它运行,我必须开始:)谢谢你解释实时列表和普通列表之间的区别。@sabithpocker这可能与克隆节点从未连接到DOM有关?
var clone = sel2.cloneNode(true);
var clonedOptions = clone.getElementsByTagName("option");
  sel1.onchange = function() {
    refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
  };