jquery无法设置checkbox选中即没有变成选中状态
2023-06-13 09:15:24 时间
$("input").attr("checked","checked")
设置以后checkbox并没有变成选中状态,用chrome调试看了一下,checkbox中确实有checked属性,而且,值为checked,但是页面显示仍然为未选中状态
$("input").prop("checked",true);
ttributes和properties之间的差异在特定情况下是很重要。jQuery1.6之前,.attr()方法在取某些attribute的值时,会返回property的值,这就导致了结果的不一致。从jQuery1.6开始,.prop()方法方法返回property的值,而.attr()方法返回attributes的值。
例如,selectedIndex,tagName,nodeName,nodeType,ownerDocument,defaultChecked,和defaultSelected应使用.prop()方法进行取值或赋值。在jQuery1.6之前,这些属性使用.attr()方法取得,但是这并不是元素的attr属性。他们没有相应的属性(attributes),只有特性(property)。
例如,考虑一个DOM元素的HTML标记中定义的<inputtype="checkbox"checked="checked"/>,并假设它是一个JavaScript变量命名的elem:
elem.checkedtrue(Boolean)将改变复选框的状态
$(elem).prop("checked")true(Boolean)将改变复选框的状态
elem.getAttribute("checked")"checked"(String)不会改变的复选框的初始状态;
$(elem).attr("checked")(1.6)"checked"(String)不会改变的复选框的初始状态;
$(elem).attr("checked")(1.6.1+)"checked"(String)将改变复选框的状态
$(elem).attr("checked")(pre-1.6)true(Boolean)将改变复选框的状态
根据W3C的表单规范,在checked属性是一个布尔属性,这意味着只要该attribute存在,即使它没有值,或是一个空字符串,该属性对应的property就是true。以下推荐的是兼容浏览器方式,判断checkbox元素的checked属性是否为"真"的方法:
if(elem.checked)
if($(elem).prop("checked"))
if($(elem).is(":checked"))
如果你使用jQuery1.6,代码if($(elem).attr("checked")),将获得一个属性(attribute),它不改变该复选框被选中和选中。它只是用来存储默认或选中属性的初始值。为了保持向后兼容,.attr()方法从jQuery1.6.1+开始除了返回属性值外,还会更新property属性,因此booleanattribute(布尔属性)不需要通过.prop()来改变其值。推荐使用上述方法之一,来取得checked的值。
相关文章
- jquery监听浏览器刷新_jQuery刷新浏览器页面大小
- jQuery图片切换插件jquery.cycle.js详解编程语言
- jQuery parent() parents()和parentsUntil()方法
- JQuery初体验(建议学习jquery)
- 跟着JQueryAPI学Jquery之三筛选
- Jquery从头学起第四讲jquery入门教程
- 基于Jquery的简单图片切换效果
- 基于jquery的获取浏览器窗口大小的代码
- jQuery对Select的操作备忘记录
- 仿jQuery的siblings效果的js代码
- 8款非常棒的响应式jQuery幻灯片插件推荐
- 获得所有表单值的JQuery实现代码[IE暂不支持]
- jQuery插件开发基础简单介绍
- jQuery学习笔记(2)--用jquery实现各种模态提示框代码及项目构架
- jQuery之自动完成组件的深入解析
- jquery改变disabled的boolean状态的三种方法
- jquery实现图片翻页效果
- jquery中的$(document).ready()使用小结
- Jquery图片延迟加载插件jquery.lazyload.js的使用方法
- jquery+ajax验证不通过也提交表单问题处理
- jQuery对于显示和隐藏等常用状态的判断方法
- jQuery显示和隐藏常用的状态判断方法
- Jquery通过JSON字符串创建JSON对象