2010-06-21 82 views
1

我要尋找一個廣義的選擇器功能,做以下範圍內的所有div:PHP,jQuery的,選擇父DIV

$(".data").click(function(){ 
    //insert proper selector 
)}; 

<div class="one"> 
<div class="data">text</div> 
<div class="data">text</div> 
<div class="data">text</div> 
</div> 

<div class="two"> 
<div class="data">text</div> 
<div class="data">text</div> 
<div class="data">text</div> 
</div> 

我想選擇做如下:

1)。選擇父div內的所有div(這意味着包括您剛剛單擊的那個div)。 2)。不要選擇其他「父」div內的div。

我也意識到,如果您可以從選定的項目中過濾$(this)(您點擊的div)將會很酷。考慮一個獎金的問題:)

我一直在從不同的角度看這個,但只發現醜陋的硬編碼(到一個特定的父母)。我感謝任何輸入!

回答

5

.siblings()選擇被點擊的兄弟姐妹。

.andSelf()增加了一個被點擊的設置。

測試例如:http://jsfiddle.net/sc23L/

$(".data").click(function(){ 
    // reference the one that was clicked 
    var $clicked = $(this); 

    // reference the entire set 
    var $divs = $clicked.siblings().andSelf(); 
}); 
+0

完美,我甚至沒有意識到兄弟姐妹()存在。該功能完全符合我的要求。謝謝帕特! – Mattis 2010-06-21 16:18:26

+0

@Mattis - 不客氣。 :o) – user113716 2010-06-21 16:19:18

+0

.andSelf()這很漂亮,我總是這樣做.add(this) – 2010-06-21 16:20:19

1

也許您在尋找.siblings()選擇器?

$('.data').click(function() { 
    $(this).siblings('.data').andSelf() 
)}; 

假設你要選擇所有.data元素都是兄弟姐妹當前,選中的元素。 .andSelf()將當前元素添加到選擇中。

+0

謝謝,你是對的:) – Mattis 2010-06-21 16:19:27

0

好吧,你的其他請求

$(".data").click(function(){ 
    $(this); //code for the clicked element 
    $(this).parent(); //code for parent of clicked element 
    $(this).siblings(); //code for siblings 
)}; 
1

兄弟姐妹選擇不會獲取被點擊的格...

$('.data').click(function(){ 
    var $clickedDiv = $(this); 
    var $allDivs = $(this).parent().children('div'); 
}); 

我不明白的「過濾器$(本)」的一部分然而,有$ clickedDiv你可以做任何你想它...

+0

謝謝,這也是比我自己找到的更好的答案:) – Mattis 2010-06-21 16:19:00