1,$('input[id^="checkbox"]').click(function()
id^="checkbox"
含义是什么?
2,
var checkall = $('#checkall');
var boxes = $('input[type="checkbox"]').not(checkall);
checkall.click(function () {
boxes.attr('checked', this.checked);
});
boxes.change(function() {
checkall[0].checked = this.checked && boxes.filter(':checked').length === boxes.length;
});
a,var boxes = $('input[type="checkbox"]').not(checkall);
这一行的意思是“给所有type=checkbox
输入框提供id=checkall"
这些线条意味着什么? checkall[0].checked = this.checked && boxes.filter(':checked').length === boxes.length
;我可以改变这个boxes.attr('checked', this.checked)
;致boxes.attr('checked', checked);
谢谢
答案 0 :(得分:2)
所有input
元素的id以字母“checkbox”开头,例如id = checkbox,id = checkbox1,id = checkboxABC等
var boxes = $('input[type="checkbox"]').not(checkall);
表示获取类型为复选框的所有输入元素,但id = checkall
checkall[0].checked = this.checked && boxes.filter(':checked').length === boxes.length;
如果选中boxes
中的所有复选框,则将$('#checkall')的checked属性设置为true。这是通过检查已选中复选框的总数是否等于复选框的总数来完成的。第一部分this.checked
不是必需的,但它不会受到伤害。如果未选中当前元素,则第一部分将阻止第二部分执行,并将状态设置为false,这是您想要的。
不,您无法将boxes.attr('checked', this.checked)
更改为boxes.attr('checked', checked)
。你可以亲自尝试过。
如果有人想知道我是如何回答的,我昨天帮助OP解决this问题,我知道OP在问什么。