jQueryのremove関数が本当にDOMから要素を削除するのかどうか本当に疑問に思っています。まず、ここ
を見ましたが、答えは説得力がありません。
remove関数を呼び出した要素をまだ操作できることに気付いたときに、この問題が発生しました。
私のコード:
<div id="container">
<div id="div">
This is a div
</div>
</div>
var div = $('#div');
$('#div').remove();
$('#container').append(div);
注:私の質問は、これをどのように解決するかではありませんか?しかし、私はここで何が起こっているのかを理解したいです!
実際、このコードはdomから#divを削除しませんが、 #divに設定されたデータがある場合、それは失われます。私は今、remove関数の振る舞いについてかなり混乱しています。誰かがこれを説明できますか?
デモ
div変数は、dom要素の単なるクローンではなく、それへの参照であると確信しています。これは、div変数を操作すると(のようにdiv.html('something')
) 、DOM内のdivが更新されるためです。
それとも私は間違っていますか?