可以在JavaScript中克隆html元素对象吗?
我在表中有一个html元素(如选择框输入字段)。现在我想复制这个对象并从中生成一个新的对象,然后使用JavaScript或jQuery。我认为这应该会起作用,但我现在有点不知所措 类似这样的代码(伪代码):可以在JavaScript中克隆html元素对象吗?,javascript,jquery,Javascript,Jquery,我在表中有一个html元素(如选择框输入字段)。现在我想复制这个对象并从中生成一个新的对象,然后使用JavaScript或jQuery。我认为这应该会起作用,但我现在有点不知所措 类似这样的代码(伪代码): 使用代码,您可以在纯JavaScript中使用以下方法执行类似操作: 或者使用jQuery方法(不是最有效的): 在jQuery中实际上非常简单: $("#ddl_1").clone().attr("id",newId).appendTo("body"); Change.appendTo(
使用代码,您可以在纯JavaScript中使用以下方法执行类似操作: 或者使用jQuery方法(不是最有效的):
在jQuery中实际上非常简单:
$("#ddl_1").clone().attr("id",newId).appendTo("body");
Change.appendTo()当然…在一行中:
$('#selector').clone().attr('id','newid').appendTo('#newPlace');
使用本机JavaScript:
newelement = element.cloneNode(bool)
其中,布尔值指示是否克隆子节点
是的,您可以复制一个元素的子元素并将其粘贴到另一个元素中:
var foo1 = jQuery('#foo1');
var foo2 = jQuery('#foo2');
foo1.html(foo2.children().clone());
证明:试试这个:
$('#foo1').html($('#foo2').children().clone());
您需要选择“#foo2”作为选择器。然后,使用html()获取它
以下是html:
<div id="foo1">
</div>
<div id="foo2">
<div>Foo Here</div>
</div>
以下是JSFIDLE:您可以使用clone()方法创建副本
$('#foo1').html( $('#foo2 > div').clone());
使用
.innerHTML
获取要克隆的元素的HTML,然后通过createElement()
创建一个新对象
var html = document.getElementById('test').innerHTML;
var clone = document.createElement('span');
clone.innerHTML = html;
通常,clone()函数必须由克隆人编码或理解。例如,让我们克隆这个:Hello,name代码>。如果我删除克隆的
标记,它是否也应该删除原始的span标记?如果两者都被删除,则对象引用被克隆;如果只删除一个集合,则对象引用是全新的实例化。在某些情况下,你想要一个,在另一些情况下,你想要另一个
通常,在HTML中,您希望克隆的任何内容都是引用自包含的。确保正确包含这些新引用的最佳方法是在新元素中重新运行相同的innerHTML并被浏览器重新理解。比起努力解决你的问题,你应该确切地知道它是如何克隆的
完整工作演示:
函数cloneElement(){
var html=document.getElementById('test').innerHTML;
var clone=document.createElement('span');
clone.innerHTML=html;
document.getElementById('clone').appendChild(clone);
}
你好
我认为这不会有什么帮助,因为您的属性值是一个不会改变的字符串。有一系列相关问题。克隆元素时修改ID非常重要。最佳答案。不要在不需要jquery的地方使用它。看起来不错。。。但到今天为止,浏览器的兼容性还是有问题的。@AniketSuryavanshi我不确定2月4日的具体情况,但ID和名称将被复制。ID需要更改,如果需要重复的名称,名称可以保持原样。很遗憾,您丢失了所有属性:/ID重复将是您的方法的一个问题
<div id="foo1">
</div>
<div id="foo2">
<div>Foo Here</div>
</div>
$("#foo2").click(function() {
//alert("clicked");
var value=$(this).html();
$("#foo1").html(value);
});
$('#foo1').html( $('#foo2 > div').clone());
var html = document.getElementById('test').innerHTML;
var clone = document.createElement('span');
clone.innerHTML = html;