如何检查我的单选按钮是否在一个div中检查了多少?

时间:2012-08-09 16:57:44

标签: javascript jquery

我有很多div叫做“each_item”,一个接一个。 我正在尝试检查收音机是否已经在这个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');
    });

非常感谢你能帮助我。

2 个答案:

答案 0 :(得分: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应始终是唯一的。

答案 1 :(得分:1)

使用.siblings()

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

您可以从选择器中删除:radio[name=gender],因为它们会过度定义您实际搜索的内容。