この記事では、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 式パラメータ: < の使用は非常に簡単です。 🎜> 空よりも削除の利点は、削除する一致する要素のセットをフィルターするセレクター式を渡すことができることです。
を通じて同じ要素のグループを選択できます。 を介してフィルタリング ルールを渡します ($()
など)。 remove()
$("p").filter(":contains('3')").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('click', function() { //删除整个 class=test1的p节点 $(".test1").remove() }) $("button:last").on('click', function() { //找到所有p元素中,包含了3的元素 //这个也是一个过滤器的处理 $("p").remove(":contains('3')") }) </script> </body>
空と削除の違い
指定された要素を削除するために使用される場合、jQuery は
empty()
remove([expr])
空のメソッド
厳密に言えば、
empty()
ノードとそのノードに含まれるすべての子孫ノードが同時に削除されます
ページ上のノードを一時的に削除したいが、ノード上のデータとイベントを失いたくない場合は、削除することができます。次の期間に表示されるノードのページへは、detach メソッドを使用してデタッチを処理できます。文字通り理解するのが簡単です。 Web 要素をホストします。つまり、要素は現在のページから削除されますが、この要素のメモリ モデル オブジェクトは保持されます。
公式説明:
このメソッドは、jQuery オブジェクトから一致する要素を削除しないため、これらの一致する要素は将来再び使用できます。 とは異なり、バインドされたイベント、添付データなどはすべて保持されます。 この文はオブジェクトを削除しますが、表示効果は失われます。しかし、それは記憶の中にまだ存在しています。追加すると、ドキュメント フローに戻ります。またまた現れました。 remove()
もちろん、ここでは特別な注意を払う必要があります。このため、detach メソッドは JQuery メソッドを通じてバインドされたイベントまたはデータのみを処理できます。$("p").detach()
に渡します。削除後、テキストをクリックして追加とテストを通じて削除された 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"> $('p').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>
JQuery は非常に強力なツール ライブラリです。私たちは仕事でそれを開発していますが、一部のメソッドは一般的に使用されていないか、まだ無視されています。気づいた。
と
はあまり使用されないかもしれません。remove()
detach()
の違いを比較表で説明しましょう。 🎜>
方法名 | 参数 | 事件及数据是否也被移除 | 元素自身是否被移除 |
remove | 支持选择器表达 | 是 | 是(无参数时),有参数时要根据参数所涉及的范围 |
detach | 参数同remove | 否 | 情况同remove |
remove: ノードを削除します
パラメータなし、ノード全体とノード上のイベントを含むノード内のすべてのノードを削除します パラメータあり
、フィルターされたノードと、ノード上のイベントとデータを含むノード内のすべてのノードを削除します
detach: ノード
の削除プロセスは、remove
とは異なり、remove()
と一貫しています。バインドされたイベント、追加データなどは保持されます。
例: $("p").detach()
この文はオブジェクトを削除します。表示効果が失われるだけです。しかし、それは記憶の中にまだ存在しています。追加すると、ドキュメント フローに戻ります。またまた現れました。
上記はこの章の全内容です。その他の関連チュートリアルについては、jQuery ビデオ チュートリアル をご覧ください。