0

我正在使用以下代码复制元素:

$($('<div></div>').html($('#elememt').clone())).html()

这有效,但不保留原始元素值。我什至像这样尝试过:

$($('<div></div>').html($('#elememt').clone().val('test'))).html()

没有运气。

关于为什么会发生这种情况以及如何解决它的任何想法?

4

3 回答 3

3

你应该使用这个

$(选择器).clone(true);

此布尔值指示是否应将事件处理程序与元素一起复制。默认值为 false 。因此,当我们在不传递任何布尔值的情况下调用 .clone() 方法时,它只是复制了元素,而不是附加到它的事件处理程序。但是,当我们传递值 true 时,它​​会复制元素和附加到它的任何事件处理程序。

于 2014-09-17T11:35:46.153 回答
0

$('<div></div>')在内存中创建一个新的 jQuery 包装元素(此语法也可以压缩为$('<div/>')),但您不会将它注入到任何地方的 DOM 中。

您也没有解释您尝试做的事情的预期结果是什么,因此很难为您的特定问题提供准确的解决方案。

尽管如此,请在下面的链接演示中查看一个工作示例。

DEMO

于 2013-08-21T16:12:43.793 回答
0

在您的示例中,有很多语法错误,复制元素太多) 就足以做到这一点:

var new_element = $('#element').clone();
new_element.val('test');

并将其附加到您想要的新值之后:

$('#somediv').append(new_element);
于 2013-08-21T15:48:03.347 回答