javascript - 如果包含多个复选框的 div 中的一个复选框被选中,则为所有复选框添加类

标签 javascript jquery

如果仅选中该 div 中的一个复选框,我想向该 div 中的所有复选框添加一个类。我不认为我离得太远,但我被困住了。这是我得到的。

var checkboxes = $("#myContent input[type='checkbox']");
$(document).on("click", checkboxes, function() {
    if(checkboxes.is(":checked")) {
        checkboxes.removeClass('invalid').addClass('valid');
    }
    else {
        checkboxes.removeClass('valid').addClass('invalid');
    }
});

我尝试用警报代替 addClass/removeClass,但在选中复选框和取消选中时都会收到相同的警报(“else”语句中的警报)。我一定就在这儿附近,有人知道我错过了什么吗?

我的 HTML 如下(我也在使用 Smarty):

<div class="pd5" id="myContent">
                        {foreach from=$cLibrary key=k item=l}
                        <div class="clrBoth {cycle values=',AltRows0'} pd5 fLeft p100">
                            <input type="hidden" name="isform[{$k}]" value="{$l.isform}" class="valid" />
                            <div class="fLeft px20">
                                <input type="checkbox" value="{$k}" name="contentValue[{$k}]" id="contentData_{$k}" class="invalid" {foreach item=cn key=po from=$selectedContent}{if $cn eq $k} checked {/if}{/foreach} />
                            </div>
                        </div>
</div>

最佳答案

  1. 要检查条件,请使用 if(this.checked)

  2. 如果您在变量中定义复选框选择器,则动态元素将不计算在内。因此委托(delegate)事件是没有用的。

<小时/>
$(document).on("click", "#myContent :checkbox", function (e) {

    if (this.checked) {
        $('#myContent :checkbox').removeClass('invalid').addClass('valid');
    } else {
        $('#myContent :checkbox').removeClass('valid').addClass('invalid');
    }
});

<强> Fiddle

关于javascript - 如果包含多个复选框的 div 中的一个复选框被选中,则为所有复选框添加类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24668182/

相关文章:

jQuery Deferred - 等待动态异步请求完成所有请求,即使某些请求失败

javascript - JQuery:将 55 个字符的随机字符串插入文本框中

javascript - Chrome 扩展程序可将代码注入(inject)到某些预定义的 URls 中

javascript - jQuery Validate 的奇怪行为

javascript - AJAX 上传 Web 应用程序

jquery - 按下向下箭头时更改自动完成下拉项 css

javascript - 无法在字符串上创建属性

javascript - AngularJS 应用程序中 $timeout 未定义错误

javascript - TypeScript 和库,例如 jQuery(带有 .d.ts 文件)

jquery - 操作数 a 中的 'in' 无效