我正在使用jQuery 1.9.0
,我的 html 是:
<div id='div1'>
</div>
<div id='div2'>
</div>
我的js:
var input = $("<input type='text'>");
$('#div1').html(input);
$('#div2').html(input);
我对这段代码的理解是
input 是一个 jQuery 对象,我可以用它分别设置 div1 和 div2 ,就像我可以将一个变量的值分配给编程语言中的许多其他变量一样。
基于这种理解,我期望的是:
<div id='div1'>
<input type="text">
</div>
<div id='div2'>
<input type="text">
</div>
但我得到:
<div id='div1'>
</div>
<div id='div2'>
<input type="text">
</div>
如果我只是打电话$('#div1').html(input);
,div1
就会有input
元素。为什么调用后div1
的input
元素会消失$('#div2').html(input);
?
我知道如何绕过这个问题,但我很想知道这种行为的原因。
提前致谢!
更新:
我感谢所有真诚回答这个问题的人,我对每一个答案都投了赞成票。我现在对这个问题有了一个线索,但我仍然想知道为什么不同的节点(div1
和div2
)不能引用同一个对象。在C
语言中,不同的变量可以引用同一个内存地址。这两者有什么区别reference
?