通过jQuery从以前选择的元素列表中进行选择

时间:2011-07-15 14:22:01

标签: javascript jquery

我在这里有一点脑屁,并希望有人可以帮助我找到解决这个问题的单行解决方案,而无需致电.each()

所以我得到一个容器中的所有复选框的列表,如下所示:

var checkboxes = $(':checkbox', '#surveyModal');

稍后,我需要查明是否在该列表中选中了任何(或没有)复选框。

我期待这样的事情发挥作用:

$(':checked', checkboxes)
// or
checkboxes.attr(':checked')
// or    
$(checkboxes).attr(':checked')

但事实并非如此。我唯一成功的就是调用each()然后单独检查每个。但这意味着我必须在更高级别的范围内保留一个单独的变量(例如someAreChecked,我觉得这不是最佳的。

    checkboxes.each(function () {
        if ($(this).attr('checked')) {
            someAreChecked = true;
        }
    });

我希望我能够轻松地在一行中做这样的检查:

if (checkboxes.('get checked count') == 0)
{
}

提前致谢。

3 个答案:

答案 0 :(得分:2)

过滤功能正是您所寻找的:)

checkboxes.filter(':checked').length;

答案 1 :(得分:1)

.attr返回属性的值,您必须将属性的名称传递给它,而不是选择器。

只需使用.is

  

描述:根据a检查当前匹配的元素集   选择器,元素或jQuery对象,如果至少有一个,则返回true   这些元素与给定的参数匹配。

$(checkboxes).is(':checked')

答案 2 :(得分:-1)

这应该这样做:

$("input[type=checkbox][checked]").length