首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >internet explorer中的cloneNode

internet explorer中的cloneNode
EN

Stack Overflow用户
提问于 2010-09-07 05:07:20
回答 4查看 7K关注 0票数 7

在执行以下代码时,IE会抛出错误-- Object不支持此属性或方法--引用cloneNode()方法。'i‘是循环计数器,source和dest都是HTML select元素。

代码语言:javascript
复制
dest.options[dest.options.length] = source.options[i].cloneNode( true );

FF和Chrome的行为与预期一致。关于如何让IE执行cloneNode()有什么想法吗?IE8调试器显示source.optionsi确实有一个cloneNode()方法。

谢谢。

EN

回答 4

Stack Overflow用户

发布于 2010-09-07 09:28:17

IE需要

代码语言:javascript
复制
new Option()

构造。

代码语言:javascript
复制
document.createElement( 'option' );

代码语言:javascript
复制
cloneNode()

都会失败。当然,所有选项在合适的web浏览器中都能正常工作。

票数 9
EN

Stack Overflow用户

发布于 2010-09-10 09:12:33

实际上,cloneNode没有抛出任何错误。将代码分解为较小的块,以正确识别错误的来源:

代码语言:javascript
复制
var origOpt = source.options[i];
var clonedOpt = origOpt.cloneNode( true );  // no error here
var destOptLength = dest.options.length;
dest.options[destOptLength] = clonedOpt;    // error!
dest.options.add(clonedOpt);                // this errors too!

dest.appendChild(clonedOpt);                // but this works!

或者,把它放回原来的样子,全部放在一行上:

代码语言:javascript
复制
dest.appendChild(source.options[i].cloneNode( true ));
票数 5
EN

Stack Overflow用户

发布于 2013-05-22 17:57:38

我发现这篇文章很有用:IE’s cloneNode doesn’t actually clone!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3654298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档