私はを使用しています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オブジェクトであり、プログラミング言語で1つの変数の値を他の多くの変数に割り当てるのと同じように、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
、異なる変数が同じメモリアドレスを参照できます。これら2つの違いは何reference
ですか?