我有一些使用属性rel
分组的复选框。当任何人都未选中时,我想检查是否所有内容都未选中,然后执行某些操作。
场景:我有一个父复选框,所有子项都未选中,父项应该是。如果选中一个或多个,则需要检查父项。
所有子复选框都有类名child
。
$('.child').change(function () {
var groupdId = $(this).attr('rel');
if($('.child').where('rel', groupId).any('checked', true)) <-- how do I do this?
{
//Uncheck the parent
}
else {
//Check the parent.
}
});
我在这里尝试的是:对于类.child
AND rel == groupdId
的元素,如果选中其中任何一个,请执行x。
答案 0 :(得分:1)
$('.child[rel="' + groupId + '"']:checked').length > 0
[rel=...]
是一种针对属性进行选择的方法
http://api.jquery.com/attribute-equals-selector/
:checked
是一个jQuery伪造选择器
http://api.jquery.com/checked-selector/
var checkbox = $('.child[rel="' + groupId + '"']');
checkbox.prop('checked', !checkbox.is(':checked'));
答案 1 :(得分:0)
未经测试,但我认为这样可行。
var $boxes = $('input.child');
$boxes.click(function() {
var $box = $(this),
grp = $box.attr('rel'),
$boxes_in_group = $boxes.filter("[rel='"+ grp +"']");
if ( $box[0].checked )
// Check the parent.
else if ( $boxes_in_group.filter(":checked").length == 0 )
// Uncheck the parent.
});