当前位置: 首页 > Web前端 > HTML

jQuery获取和设置checkbox的checked属性总结

时间:2023-04-02 14:46:23 HTML

最近在项目中使用jQuery来设置checkbox。使用场景是页面上有三种单选按钮,一种是选择所有页面数据(id='cb1'),一种是选择当前页面(id='cb2'),还有一种是选择一个(name='cb3'),这也是一个常见的场景。一开始全选框的点击事件是这样写的:$("#cb1",this).click(function(){varallChecked=this.checked;$("#cb2").attr("checked",allChecked);//当前页$("input[name='cb3']").each(function(){this.checked=allChecked;})});结果是点击cb1后,cb3和cb2的每一项都可以,选中cb1后,其他的也可以取消,但是经过上面的一轮,cb3正常了,但是cb2就不能再选中了,没有任何反应。我为此疯狂了很长一段时间。一开始以为是jQuery版本问题,查看了导入的版本,发现不是这个原因。原来在jQuery中,操作元素属性的方式有两种,一种是attr(),一种是prop()。attr()属性在页面首次加载时确定。当页面初始状态下的checkbox未被选中时,$("#cb1").attr("checked")未定义。点击选中后还是undefined,不管是否选中$("#cb1").attr("checked")始终是undefined;页面初始状态下checkbox被选中时,$("#cb1").attr("checked")被勾选,之后unchecked仍然是被勾选。prop()方法随着checked属性的变化而变化。选中时为真,选中时为假。最后总结一下获取和设置checked属性的方法。获取选中的属性$("#id").prop("checked")$("#id").get(0).checked)document.getElementById("#id").checked$("#id").is(":checked")设置选中$("#id").prop("checked",true)$("#id").get(0).checked=truedocument.getElementById("#id").checked=true不足之处欢迎大家补充指正。参考:http://blog.csdn.net/hjb27224...http://www.jb51.net/article/5...