我很难理解为什么jQuery对象不能被多次追加:
var $divObj = $('<div/>', { 'text': 'This is a div!' });
$('button').on('click', function() {
$('#example').append($divObj);
});
<div id="example"></div>
<button>Add Div</button>
这仅在第一次点击button
时有效。后续点击似乎没有做任何事情。
我知道我可以在追加对象时使用clone()
,或者可以将div
作为字符串传递,但是我正在寻找关于为什么追加对象的解释不止一次工作。
答案 0 :(得分:7)
因为$divObj
拥有对DOM元素的引用(嗯,jQuery对象,但它只包含DOM元素)。将该元素追加到DOM时,$divObj
仍引用同一个对象。将它插入DOM时,它不会神奇地复制它。
正如您所说,您可以使用.clone()
创建节点的新副本,该副本可以单独添加。
答案 1 :(得分:0)
问题是,在完全加载页面后,它没有从$ divObj中获取值
如果您想在每次单击时显示消息,可以将$ divObj置于单击功能中,它将起作用。
这是代码更改。
$('button').on('click', function() {
var $divObj = $('<div />', { 'text': 'This is a div!' });
$('#example').append($divObj);
});
由于