ホームページ > ウェブフロントエンド > jsチュートリアル > jQueryでのDOMノードの削除方法まとめ(超徹底)

jQueryでのDOMノードの削除方法まとめ(超徹底)

PHPz
リリース: 2018-09-30 16:14:46
オリジナル
1654 人が閲覧しました

この記事では、jQuery で DOM ノードを削除する方法を主に紹介します。この記事では、empty() の基本的な使用法、remove() のパラメーター化された使用法とパラメーターなしの使用法、empty と Remove の違い、などが含まれていると思います。必要な場合は、データ削除操作 detach() と detach() と Remove() の違いを参照してください。

はじめに

開発者にとって、ページ上のノードの削除は一般的な操作であることは誰もが知っていると思いますが、jQuery ではさまざまなメソッドが使用されます。この問題に対処するために。以下の記事で詳しく紹介していますので、興味のある方はぜひご覧ください。

1. empty

empty 名前の通り空のメソッドですが、削除とは少し異なります。指定された要素内のすべての子ノードのみが削除されるためです。

このメソッドは、子要素 (および他の子孫要素) を削除するだけでなく、要素内のテキストも削除します。指示によれば、要素内のテキスト文字列は要素の子ノードとみなされます。 empty メソッドを通じて p 内のすべての要素を削除すると、内部の HTML コードがクリアされるだけですが、マークアップは DOM に残ります。empty メソッドを通じて、現在の p 要素の下にあるすべての p 要素が削除されますが、p 要素自体は は削除されていませんでした。 id=test

 $("button").on('click', function() {
 //通过empty移除了当前p元素下的所有p元素
 //但是本身id=test的p元素没有被删除
 $("#test").empty()
 })
ログイン後にコピー

2.remove

remove は empty と同じメソッドですが、remove は要素自体を削除します。バインドされたイベントや要素に関連する jQuery データを含む、要素内のすべてのもの。

たとえば、ノードはクリック イベントにバインドされていますが、実際には、remove メソッドを使用せずにこのノードを削除するのは非常に簡単ですが、同時にイベントを破棄する必要があります。 「メモリ リーク」が発生する可能性があるため、フロントエンド開発者は、拘束されているイベントの数に必ず注意し、使用しないときは忘れずにイベントを破棄してください。 Remove メソッドを使用して p とその中のすべての要素を削除します。イベント破棄メソッドは、remove 内で自動的に操作されるため、

remove 式パラメータ: < の使用は非常に簡単です。 🎜> 空よりも削除の利点は、削除する一致する要素のセットをフィルターするセレクター式を渡すことができることです。

を通じて同じ要素のグループを選択できます。

を介してフィルタリング ルールを渡します ($() など)。 remove()$("p").filter(":contains(&#39;3&#39;)").remove()

<body>
 <style>
 .test1 {
 background: #bbffaa;
 }
 
 .test2 {
 background: yellow;
 }
 </style>
 <h2>通过jQuery remove方法移除元素</h2>
 <p class="test1">
 <p>p元素1</p>
 <p>p元素2</p>
 </p>
 <p class="test2">
 <p>p元素3</p>
 <p>p元素4</p>
 </p>
 <button>点击通过jQuery的empty移除元素</button>
 <button>点击通过jQuery的empty移除指定元素</button>
 <script type="text/javascript">
 $("button:first").on(&#39;click&#39;, function() {
 //删除整个 class=test1的p节点
 $(".test1").remove()
 })

 $("button:last").on(&#39;click&#39;, function() {
 //找到所有p元素中,包含了3的元素
 //这个也是一个过滤器的处理
 $("p").remove(":contains(&#39;3&#39;)")
 })
 </script>
</body>
ログイン後にコピー

空と削除の違い
指定された要素を削除するために使用される場合、jQuery は

と < を提供します🎜>2 つのメソッドはどちらも要素を削除しますが、2 つの

empty()remove([expr])空のメソッド

厳密に言えば、
    にはまだ違いがあります。このメソッドはノードを削除するのではなく、ノードをクリアします。要素
  • empty()

    空のノード自体を削除することはできません

  • remove メソッド

ノードとそのノードに含まれるすべての子孫ノードが同時に削除されます

  • 選択したコレクションから削除する要素を指定するために渡すフィルター式を提供します

3. detach


ページ上のノードを一時的に削除したいが、ノード上のデータとイベントを失いたくない場合は、削除することができます。次の期間に表示されるノードのページへは、detach メソッドを使用してデタッチを処理できます。文字通り理解するのが簡単です。 Web 要素をホストします。つまり、要素は現在のページから削除されますが、この要素のメモリ モデル オブジェクトは保持されます。

公式説明:

このメソッドは、jQuery オブジェクトから一致する要素を削除しないため、これらの一致する要素は将来再び使用できます。

とは異なり、バインドされたイベント、添付データなどはすべて保持されます。 この文はオブジェクトを削除しますが、表示効果は失われます。しかし、それは記憶の中にまだ存在しています。追加すると、ドキュメント フローに戻ります。またまた現れました。 remove() もちろん、ここでは特別な注意を払う必要があります。このため、detach メソッドは JQuery メソッドを通じてバインドされたイベントまたはデータのみを処理できます。$("p").detach()

すべての P 要素を

に渡します。削除後、テキストをクリックして追加とテストを通じて削除された p をページに配置できます。イベントは失われません

$("p").detach()

<body>
 <p>P元素1,默认给绑定一个点击事件</p>
 <p>P元素2,默认给绑定一个点击事件</p>
 <button id="bt1">点击删除 p 元素</button>
 <button id="bt2">点击移动 p 元素</button>
 <script type="text/javascript">
 $(&#39;p&#39;).click(function(e) {
 alert(e.target.innerHTML)
 })
 var p;
 $("#bt1").click(function() {
 if (!$("p").length) return; //去重
 //通过detach方法删除元素
 //只是页面不可见,但是这个节点还是保存在内存中
 //数据与事件都不会丢失
 p = $("p").detach()
 });

 $("#bt2").click(function() {
 //把p元素在添加到页面中
 //事件还是存在
 $("body").append(p);
 });
 </script>
</body>
ログイン後にコピー
detach() と Remove の違い。 ()

JQuery は非常に強力なツール ライブラリです。私たちは仕事でそれを開発していますが、一部のメソッドは一般的に使用されていないか、まだ無視されています。気づいた。

はそのうちの 1 つである可能性があります。

はあまり使用されないかもしれません。remove()detach() の違いを比較表で説明しましょう。 🎜>

方法名 参数 事件及数据是否也被移除 元素自身是否被移除
remove 支持选择器表达 是(无参数时),有参数时要根据参数所涉及的范围
detach 参数同remove 情况同remove

remove: ノードを削除します

  • パラメータなし、ノード全体とノード上のイベントを含むノード内のすべてのノードを削除します パラメータあり

  • 、フィルターされたノードと、ノード上のイベントとデータを含むノード内のすべてのノードを削除します

detach: ノード

  • の削除プロセスは、remove

  • とは異なり、remove() と一貫しています。バインドされたイベント、追加データなどは保持されます。

  • 例: $("p").detach()この文はオブジェクトを削除します。表示効果が失われるだけです。しかし、それは記憶の中にまだ存在しています。追加すると、ドキュメント フローに戻ります。またまた現れました。

上記はこの章の全内容です。その他の関連チュートリアルについては、jQuery ビデオ チュートリアル をご覧ください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート