0

少し問題がありますが、これが可能かどうか疑問に思っていますか?

私がこれを持っているとしましょう...

<div id="box">

     <div data-ground="1">ONE</div>
     <div data-ground="2">TWO</div>
     <div data-ground="3">THREE</div>
     <div data-ground="4">FOUR</div>

</div>

これを使用して、1 つの特定の div を除くすべてを削除します...

$('#box div[data-group!=3]').remove();

とにかく元の子要素を元に戻す方法はありますdiv#boxか? - それらが削除された後ですか?

私はフィドルを作りました... http://jsfiddle.net/motocomdigital/N8vUy/4/


どんな提案でも大歓迎です。

4

3 に答える 3

4

削除したノードを復元することはできませんが、最初から再作成して親ノードに挿入し直す必要があります。

目的によっては、ノードを非表示にして、必要なときに表示するオプションかもしれません。

$('#box div[data-group!="3"]').hide(); // hide node
$('#box div[data-group!="3"]').show(); // show node
于 2012-11-05T01:03:56.153 に答える
2

このremoveメソッドは要素を DOM から取り出すだけでなく、イベントのバインドを解除し、要素の jQuery データを削除するため、要素への参照を保持していても、それらを DOM に再挿入するだけでは機能しません。

要素を保持したい場合は、代わりにdetachメソッドを使用してください。

var el = $('div[data-group!=3]');
el.detach();

$('#box').append(el);

デモ: http://jsfiddle.net/Guffa/N8vUy/10/

于 2012-11-05T01:07:02.530 に答える
0

$('a#button').on('クリック', function (){

$('div [data-group!="3"]').remove();

});


div タグの後に 1 つのスペースを配置します。これが、リンクをクリックした後にすべての div タグが消える理由です。

そして、最初の質問について
は、それを元に戻すことはできません。


.hide() と .show() を使用するか、.toggle() を使用してみてください

于 2012-11-05T01:11:09.097 に答える