首先要明确,CheckBox是否被勾选中和input的checked这个attribute是否="checked"是没有直接关系的。
一个没有写相关js函数的input:checked,你只能控制它是否被选中,如上图所示。
$('.modal-body input:checked')
如上代码,这个jquery选择器能找到第二个input,但是能找到,与它的attitude:checked并没有关系。
如果想通过是否勾选来控制checked这个attitude,那么需要加如下代码:
$('.modal-body thead').on('click','input',function(){
if($(this).attr('checked')=='checked'){
$(this).removeAttr("checked");
}else{
$(this).attr("checked", "true");
}
});
如果你还想其他dom元素的事件来控制,是否选中和attitude,那么需要加如下代码:
$('.modal-body thead').on('change','select',function(){
$(this).parent().find('th input').prop('checked','checked');
$(this).parent().find('th input').attr('checked','checked');
});
其中使用prop函数,是为了控制是否选中。如果没有使用,那么input元素不会被选中,但是attitude的值会变。
其实,实际上不用在意checked这个attitude,因为jquery选择器在意的是是否选中,而不是attitude的值。
但当需要用其他dom元素的事件来触发,使得CheckBox被选中时,就需要使用prop函数了。因为用户在意的是视觉,而不是通过控制台看attitude的值。