2012-08-09 45 views
1

我有很多div叫做「each_item」,一個接一個。 我想檢查一個收音機是否已經檢查此非常div。如何檢查我的單選按鈕是否在其他許多人的ONE div內被檢查?

我的問題是,與我的jQuery代碼(見下文),所有「each_item」div的所有單選按鈕都經過測試。我可能需要使用$(this),但我不知道如何在我下面所使用的選擇使用它(即$('input:radio[name=gender]:checked')

<div class='each_item'> 
<input type='radio' name='gender' value='m'> 
<input type='radio' name='gender' value='f'> 

<input type='button' id='btn'> 
</div> 

我嘗試了jQuery是這樣的:

$('#btn').click(function(){ 

    if ($('input:radio[name=gender]:checked').length < 1) 
     alert('nothing was checked'); 
    }); 

謝謝很多,如果你能幫助我。

回答

4

您可以使用find只查看div。 closest將找到與該類最近的祖先(包含div)。

$('#btn').click(function(){ 

    if ($(this).closest(".each_item").find('input:radio[name=gender]:checked').length < 1) 
     alert('nothing was checked'); 
    }); 

}); 

還要注意的是,如果你有多個按鈕具有相同id,這是無效的,並可能會導致你的路線問題。 id s應該始終是唯一的。

+0

嗨,非常感謝您的回覆。它爲我解決了它。 Regards – eric01 2012-08-09 17:02:20

1

使用.siblings()

$('#btn').on('click', function() { 
    if ($(this).siblings('input:checked').length < 1) { 
     alert('nothing was checked'); 
    } 
}); 

您可以從您的選擇,因爲他們overdefine你實際上是尋找去除:radio[name=gender]

+0

嗨,謝謝你的提示。我刪除它們,它適用於我。謝謝 – eric01 2012-08-09 17:06:54

相關問題