我正在使用以下代码复制元素:
$($('<div></div>').html($('#elememt').clone())).html()
这有效,但不保留原始元素值。我什至像这样尝试过:
$($('<div></div>').html($('#elememt').clone().val('test'))).html()
没有运气。
关于为什么会发生这种情况以及如何解决它的任何想法?
你应该使用这个
$(选择器).clone(true);
此布尔值指示是否应将事件处理程序与元素一起复制。默认值为 false 。因此,当我们在不传递任何布尔值的情况下调用 .clone() 方法时,它只是复制了元素,而不是附加到它的事件处理程序。但是,当我们传递值 true 时,它会复制元素和附加到它的任何事件处理程序。
$('<div></div>')
在内存中创建一个新的 jQuery 包装元素(此语法也可以压缩为$('<div/>')
),但您不会将它注入到任何地方的 DOM 中。
您也没有解释您尝试做的事情的预期结果是什么,因此很难为您的特定问题提供准确的解决方案。
尽管如此,请在下面的链接演示中查看一个工作示例。
在您的示例中,有很多语法错误,复制元素太多)
就足以做到这一点:
var new_element = $('#element').clone();
new_element.val('test');
并将其附加到您想要的新值之后:
$('#somediv').append(new_element);