2012-07-31 36 views
2

我有一组监听点击的div。点击时,我需要删除所有其他人。如何在jquery中删除(.remove)所有元素(div)但不包含this(this)元素(div)?

HTML:

<div class="foo">A</div> 
<div class="foo">B</div> 
<div class="foo">C</div> 
<div class="foo">D</div> 

如果我点击DIV(A),我怎么可以删除所有的休息(B,C,d),但要保持?

我想这一点,但没有奏效:

$('.foo:not(this)').remove(); 
+0

我可以假设你正在移除的是你想要保留的那个的兄弟姐妹吗? – 2012-07-31 19:17:26

回答

6
$('.foo').not(this).remove(); //w00t 

所以把它放在一起:

$('.foo').click(function(){ 
    //code... 
    $('.foo').not(this).remove(); //w00t 
    //more code.... 
}); 
2

IF您要删除所有一组元素的兄弟姐妹,你可以做到这一点。

$(".foo").click(function (e) { 
    $(this).siblings().remove(); 
}); 
+1

为什么_assuming_其他'.foo'是兄弟姐妹? – Neal 2012-07-31 19:19:12

+0

如果他们是兄弟姐妹,那么这种方法是正确的。所提供的HTML提供了该指示。当然,如果他们不是兄弟姐妹,那么这是行不通的,但是删除所有元素的兄弟姐妹是一种常见的用例。 – 2012-07-31 19:20:35

+0

你知道_assume_会发生什么吗? – Neal 2012-07-31 19:22:06

相关问题