javascript - 如何使用事件触发器和自定义属性获取元素的子元素?

标签 javascript jquery

我希望你能帮助我解决我的问题。 这是我的示例代码

<input type="checkbox" data-attr="getAllChoices" />

<div id="parent">

     <div id="child1">
         <input type="checkbox" value="3"/>Choice A
     </div>

     <div id="child2">
         <input type="checkbox" value="5"/>Choice B
     </div>

     <div id="child3">
         <input type="checkbox" value="6"/>Choice C
     </div>

</div>

场景:

如果用户选中该复选框,则所有选项也应被选中。应该使用日期属性进行比较。如果它有一个值,它将调用父级的子级(复选框)并检查全部。

到目前为止,我的 js 中有这个。但我不知道如何调用其他复选框。我唯一知道的是通过访问子 div 来调用复选框。

$("input[data-attr='checkAll']").on('change',function(){
     //no idea. . . . . 
});

顺便说一下,我使用的是jquery 1.5

最佳答案

我没有看到data-check 属性。因此,请尝试使用 data-attr 属性:

$("input[data-attr='getAllChoices']").bind('change',function(){
      $('#parent').find('input[type=checkbox]').attr('checked', this.checked);
});

如果您想避免对选中的属性使用 attr(),您可以手动迭代复选框:

$("input[data-attr='getAllChoices']").bind('change',function(){
    var isChecked = this.checked;
    $('#parent').find('input[type=checkbox]').each(function(i, val){
        val.checked = isChecked;
    });
});

关于javascript - 如何使用事件触发器和自定义属性获取元素的子元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19558872/

相关文章:

javascript - 如何访问通过 jquery 函数添加的 ul 中的列表项

javascript - 未捕获的类型错误 : X has no method 'Y' - but Y *is* declared

javascript - 如何使用 jquery ui 进度条?

javascript - 停止主 dblclick 事件触发,以便仅触发子 dbclick

javascript - 在选择的 jquery ui 选项卡上获取选项卡文本

javascript - Angular JS 中的动画检查元素是否正在补间 greensock

javascript - 当路径应用程序更改时如何停止滚动事件?

javascript - 如果我没有将回调包装在 function() {} 中,则 jQuery.ajax() 调用成功,否则失败

javascript - jquery .click() 仅在单击两次时有效

javascript - 在 Javascript 中处理子窗口和孙窗口