问题描述
- 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"); 方法可以。这是为什么!
解决方案
1.6+以上jquery 设置checked这种需要用prop,不要用attr,jquery attr prop 区别
解决方案二:
attr("checked",false);我都是这样写的
时间: 2024-08-18 18:03:42