2011-06-15 30 views
1

1理解,$('input[id^="checkbox"]').click(function()一些代码,我不能很好地在jQuery的

有什么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; 
}); 

一个,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

id^=“checkbox” - >所有输入的id以checkbox开头 – 2011-06-15 05:18:07

回答

2
  1. 所有input元件具有ID开头字母 “复选框” 像ID =复选框,ID = checkbox1,ID = checkboxABC等

  2. var boxes = $('input[type="checkbox"]').not(checkall); 手段得到类型复选框的所有输入单元,除了一个使用id = checkall

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

  4. 不,您不能将boxes.attr('checked', this.checked)更改为boxes.attr('checked', checked)。你可以自己尝试过。

如果有人想知道如何回答这些,我帮助解决OP问题this昨天,我知道OP问。

相关问题