2010-06-21 52 views
2

我有以下的html代碼:jQuery的特殊選擇

<div class="Radios"> 
    <span class="radio"> 
      <input type="radio" value="1"> yes 
      <input type="radio" value="0"> no 
    </span> 
</div> 
<div class="More">hello</div> 
<div class="More">hello</div> 

<div class="Radios"> 
    <span class="radio"> 
      <input type="radio" value="1"> yes 
      <input type="radio" value="0"> no 
    </span> 
</div> 
<div class="More">hello</div> 

<div class="Radios"> 
    <span class="radio"> 
      <input type="radio" value="1"> yes 
      <input type="radio" value="0"> no 
    </span> 
</div> 
<div class="More">hello</div> 
<div class="More">hello</div> 
<div class="More">hello</div> 

默認情況下,所有類的div =更應該被隱藏。我使用$('div.More')。hide()

困難的是,當用戶點擊一個值爲'1'的廣播電臺的所有分區。更多的下一個div.Radios兄弟應顯示但只有中級兄弟姐妹,不是所有的divs.More)。

直到現在,我有一個元素的父母點擊,但我不能選擇下一個div.More元素,直到下一個div.Radios。

你能幫我一下嗎?

最好的問候。

何塞

回答

2

,但我不能選擇下一個div.More元素,直到下一個div.Radios。

使用nextUntil()

$('input[type=radio][value=1]').click(function() { 
    $(this).parents('.Radios').nextUntil('.Radios').show(); 
} 
+1

哇!多麼優雅的解決方案,很好的答案。我應該指出,這個函數是在jQuery 1.4中引入的。所以確保你運行的是最新版本的jQuery。 – Wireblue 2010-06-21 10:00:03

+0

@Wireblue:只要OP使用最新版本的jquery,它就是優雅的。 – Sarfraz 2010-06-21 10:01:30

1

好第一關,你點擊無線電輸入是來自你關心, 「.Radios」 父2個水平下降。

所以,你要能夠你做任何事情,這樣的事情之前獲得該父:

$("[type=radio]").click(function(){ 
    var realParent = $(this).parents(".Radios"); 
}); 

現在,你有家長就可以輕鬆搞定了。接下來()和.prev( )兄弟元素:

$("[type=radio]").click(function(){ 
    var realParent = $(this).parents(".Radios"); 
    realParent.next().show(); 
    realParent.prev().show(); 
});