-1

我已经从有同样问题的人那里阅读了很多关于 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 ...
        }
    });

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

这很简单,但让我发疯!

4

6 回答 6

2

您只需使用即可节省一些时间和变量分配this

$(".templateList input:checkbox").each(function () {
    if (this.checked) {
        ... do something ...
    }
});
于 2013-05-31T13:42:33.747 回答
1

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

$(".templateList input:checkbox").each(function () {
    var chk = $(this);
    if (chk.is("checked")) {
        ... do something ...
    }
});
于 2013-05-31T13:41:20.493 回答
1

将 is() 函数与 ":checked" 一起使用,如下所示:

$(chk).is(':checked'); 
于 2013-05-31T13:41:27.173 回答
0
$(".templateList input:checkbox:checked").each(function(){...})
于 2013-05-31T13:43:26.837 回答
0

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

于 2013-05-31T13:49:20.430 回答
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 ...
            }
        });
于 2013-05-31T13:41:18.407 回答