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>

我用它来删除除一个特定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 回答