jQueryでDOM要素を破棄する方法は?


回答:


194

$target.remove();あなたが探しているものは何ですか?

https://api.jquery.com/remove/


75
もちろん、これは表示されているドキュメントから削除するだけです。$ target変数自体など、JavaScriptからノードへの他の参照がある場合、オブジェクトは今のところガベージコレクターをエスケープします。それを破壊したい場合は、それへのすべての参照も失う必要があります。しかし、なぜDOM要素を破棄したいのかはよくわかりません。たぶん、あなたは$ targetが嫌いです。貧弱な$ target、それはあなたにこれまで何をしましたか?
ボビンス2009

52
$ targetは彼が一人のときは親切ですが、10万人のクローンの友達がいるときは嫌になります。
セバスティアンGrignoli

2
ウィル.empty()同様の効果がありますか?
Saurabh Nanda、2012

3
@SaurabhNanda-空の場合、オブジェクトのコンテンツは削除されますが、オブジェクト自体は削除(または破棄)されません。
2013年

46

ターゲットを完全に破壊したい場合は、いくつかのオプションがあります。最初に、上記のようにDOMからオブジェクトを削除できます...

console.log($target);   // jQuery object
$target.remove();       // remove target from the DOM
console.log($target);   // $target still exists

オプション1-次に、ターゲットを空のjQueryオブジェクト(jQuery 1.4以降)で置き換えます

$target = $();
console.log($target);   // empty jQuery object

オプション2-またはプロパティを完全に削除します(別の場所で参照するとエラーが発生します)

delete $target;
console.log($target);   // error: $target is not defined

続きを読む:空のjQueryオブジェクトに関する情報、および削除に関する情報


3
なぜdelete $target動作しません:perfectionkills.com/understanding-delete/#misconceptionsは なぜだろう$target=null動作しますか?
LeeGee 2013年

@LeeGee-投稿を要約して、jQueryオブジェクトで削除が機能しない理由を説明できますか?最後にconsole.log($ target)を見ると動作するように見えるのはなぜですか?ありがとうございました。
ルーク

私が非常に詳細に見つけた引用記事よりもよく説明することはできません。
LeeGee 2013年

記録では、コンソールはevalのスコープでJSを評価するため、これはコンソールで機能します。これにより、削除が可能になります。「自然」スコープの変数は削除できません。$target=null代わりに使用してください。それはより速く、内部ブラウ​​ザの最適化を台無しにしません。
ベンドマン、2014年

1
削除で結構です。これは、ブロックがJSエンジンによって最適化されないことを意味します。ほとんどの場合、それはまったく無関係です。問題が発生したら、削除を使用する方法を探します。前じゃない。
チャーリーマーティン

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.