2 chaobaby94 ChaoBaby94 于 2016.02.17 09:45 提问

jQuery点击复选框问题

问题一:
网上和教学视频都说
$('input[name="items"]').attr("checked","");
是设置为没有被选中。但是我的点击后还是变成checked状态。
把教学视频的代码完全复制了下,只是导入的jquery版本不一样。结果他的可以,我的不可以。是jquery版本的问题吗?我的是jquery-2.1.4 视频的是jquery-1.3.1
问题二:
看的视频是练习全选/全不选的checkbox的操作,代码如下
$('#checkedAll_2').click(function(){
// checked属性判断有没被选中
if(this.checked){
// $('input[name="items"]:checkbox').attr("checked","true");
$('input[name="items"]').attr("checked","true");
$.each($('input[name="items"]'),function(){
alert($(this).val()+":"+this.checked);
});
} else{
$("input[name='items']").attr("checked","");

// $("input[name='items']").removeAttr("checked");
$.each($('input[name="items"]'),function(){
alert($(this).val()+":"+this.checked);
});
}
});
当已选中的状态再次点击变成未选中时(执行else语句),里面的$(this).val()的值就变成了undefined了。这是为什么?
问题三:还是上面的代码。(和问题一有关)
用$("input[name='items']").attr("checked",""); 不能改为不选,只有$("input[name='items']").removeAttr("checked"); 方法可以。这是为什么!

2个回答

showbo
showbo   Ds   Rxr 2016.02.17 09:55
已采纳

1.6+以上jquery 设置checked这种需要用prop,不要用attr,jquery attr prop 区别

ChaoBaby94
ChaoBaby94 厉害!! 解决了
接近 2 年之前 回复
sinat_31535993
sinat_31535993   Rxr 2016.02.17 09:59

attr("checked",false);我都是这样写的

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!