找出是否使用jQuery检查复选框

时间:2013-05-31 13:39:58

标签: jquery

我已经从同样问题的人那里阅读了很多关于SO的帖子,到目前为止我尝试的所有内容都没有用。

我有这样的HTML:

<ul>
  <li class="templateList">
    <input id="ctl00_MainContent_newCollection_wzd_lstSiteTypes_ctr10_chkSite" type="checkbox" checked="checked" name="ctl00$MainContent$newCollection$wzd$SiteTypes$ctrl0$chkSite">
    <div></div>
  </li>
  <li>
     ...
  </li>
</ul>

使用jQuery我需要找到UL中检查过的所有复选框,然后将CSS类添加到名为“selected”的LI父元素中。这就是我到目前为止所做的:

    $(".templateList input:checkbox").each(function () {
        var chk = $(this);
        alert($(chk).attr("checked"));
        if (chk.attr("checked")) {
            ... do something ...
        }
    });

警报声明用于调试 - 它总是说“未定义”。

这很简单,但让我疯了!

6 个答案:

答案 0 :(得分:2)

只需使用this

即可节省一些时间和变量分配
$(".templateList input:checkbox").each(function () {
    if (this.checked) {
        ... do something ...
    }
});

答案 1 :(得分:1)

使用is()检查匹配的元素是否满足给定的选择器和:checked选择器,以检查是否选中了复选框。

$(".templateList input:checkbox").each(function () {
    var chk = $(this);
    if (chk.is("checked")) {
        ... do something ...
    }
});

答案 2 :(得分:1)

使用带有“:checked”的is()函数,如下所示:

$(chk).is(':checked'); 

答案 3 :(得分:0)

使用.prop()

$(".templateList input:checkbox").each(function () {
        var chk = $(this);
        alert($(chk).prop("checked"));
        if (chk.prop("checked")) {
            ... do something ...
        }
    });

或简写:

$(".templateList input:checkbox").each(function () {
            var chk = $(this);            
            if (chk.is(":checked")) {
                ... do something ...
            }
        });

答案 4 :(得分:0)

$(".templateList input:checkbox:checked").each(function(){...})

答案 5 :(得分:0)

'输入:复选框[已选中]'怎么样?它会返回你需要的东西......