2012-04-06 51 views
2

我想只選擇來自同一級別的「mixitup」元素,單擊其中一個元素。如何用jquery進行選擇,來自不同DOM級別的類似元素?

<div data-id="0"> 
    <div class="mixitup">1</div> 
    <div class="mixitup">2</div> 
    <div class="mixitup">3</div> 
</div> 
<div data-id="1"> 
    <div class="mixitup">4</div> 
    <div class="mixitup">5</div> 
    <div class="mixitup">6</div> 
</div> 

我是說。如果我點擊內容= 4的DIV,我想選擇4,5和6的DIV。

有人知道一個辦法嗎? 感謝

回答

0

你需要的是兄弟姐妹選擇:

$('.mixitup').click(function(){ 
    $(this).siblings('.mixitup'); //this selects siblings of an element; 
}) 
5

如果您想選擇所有的人,包括你挑一個。 http://jsfiddle.net/kwnDS/1/

$('.mixitup').on('click', function() { 
    $(this).siblings().andSelf(); 
}); 
+0

不要忘記取消選擇任何以前的比賽。 – Anthony 2012-04-06 23:16:05

1

兄弟姐妹,包括自我元素,將通過查找父來完成,並選擇它的所有兒童(不後代)的:

$(".mixitup").click(function() { 
    $(this).parent().children().doSomething(); 
}); 
+1

它應該是'$(this).parent()。children(「div.mixitup」)。doSomething();' – ocanal 2012-04-06 22:43:06

+0

我同意,但我覺得如果你知道你想選擇所有的兄弟姐妹,如果父div中還有其他孩子,我肯定會爲孩子添加選擇器()。在這種情況下忽略它(如果適用)會減少額外的處理。 – Ian 2012-04-07 03:53:56

1

要避免選擇點擊的元素的父,你應該簡單地選擇它的兄弟姐妹和自己:

$(".mixitup").on("click", function(e) { 
    $('.mixitup').removeClass('clicked'); 
    $(this).siblings().andSelf().addClass("clicked"); 
}​); 

http://jsfiddle.net/crazytonyi/G4Bny/

相關問題