我目前正在使用此JavaScript代码段一次选择3个复选框
$(document).ready(function() {
var $cbs = $('input:checkbox[name="select[]"]'),
$links = $('a[name="check"]');
$links.click(function() {
var start = $links.index(this) * 3,
end = start + 3;
$cbs.slice(start,end).prop("checked",true);
});
});
目前此代码仅选择复选框,但是我想知道是否有人知道如何修改它以便打开和关闭复选框选择?
以下是我当前代码的示例:“jsfiddle” - 点击1-3,4-6链接等查看复选框。
答案 0 :(得分:1)
使prop("checked", ...)
调用的第二个参数取决于切片中第一个(或其他)复选框的“已检查”状态:
// ...
$cbs.slice(start,end).prop("checked", !$cbs.slice(start).prop("checked"));
这是一个updated jsFiddle。
[编辑] 或单独更新切片中的每个复选框:
// ...
$cbs.slice(start,end).each(function() {
var $this = $(this);
$this.prop("checked", !$this.prop("checked"));
});
答案 1 :(得分:0)
$cbs.slice(start,end).each(function() {
if ($(this).is(":checked")) {
$(this).removeProp("checked");
} else {
$(this).prop("checked",true);
}
});
编辑:Maeric的解决方案更好。我不知道removeProp有这个问题:
注意:请勿使用此方法删除本机属性,例如 选中,禁用或已选中。这将删除该属性 完全,一旦删除,不能再添加到元素。使用 .prop()将这些属性设置为false。