我在jquery中不太了解的一些代码

时间:2011-06-15 05:13:09

标签: jquery

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);谢谢

1 个答案:

答案 0 :(得分:2)

  1. 所有input元素的id以字母“checkbox”开头,例如id = checkbox,id = checkbox1,id = checkboxABC等

  2. var boxes = $('input[type="checkbox"]').not(checkall); 表示获取类型为复选框的所有输入元素,但id = checkall

  3. 除外
  4. checkall[0].checked = this.checked && boxes.filter(':checked').length === boxes.length; 如果选中boxes中的所有复选框,则将$('#checkall')的checked属性设置为true。这是通过检查已选中复选框的总数是否等于复选框的总数来完成的。第一部分this.checked不是必需的,但它不会受到伤害。如果未选中当前元素,则第一部分将阻止第二部分执行,并将状态设置为false,这是您想要的。

  5. 不,您无法将boxes.attr('checked', this.checked)更改为boxes.attr('checked', checked)。你可以亲自尝试过。

  6. 如果有人想知道我是如何回答的,我昨天帮助OP解决this问题,我知道OP在问什么。