jquery无法设置checkbox选中即没有变成选中状态

时间:2024-04-22 22:33:26 


$("input").attr("checked","checked")


设置以后checkbox并没有变成选中状态,用chrome调试看了一下,checkbox中确实有checked属性,而且,值为checked,但是页面显示仍然为未选中状态


$("input").prop("checked",true);



ttributes和properties之间的差异在特定情况下是很重要。jQuery 1.6之前 ,.attr()方法在取某些 attribute 的值时,会返回 property 的值,这就导致了结果的不一致。从 jQuery 1.6 开始, .prop()方法 方法返回 property 的值,而 .attr() 方法返回 attributes 的值。

例如, selectedIndex, tagName, nodeName, nodeType, ownerDocument, defaultChecked, 和 defaultSelected 应使用.prop()方法进行取值或赋值。 在jQuery1.6之前,这些属性使用.attr()方法取得,但是这并不是元素的attr属性。他们没有相应的属性(attributes),只有特性(property)。

例如,考虑一个DOM元素的HTML标记中定义的<input type="checkbox" checked="checked" /> ,并假设它是一个JavaScript变量命名的elem :

elem.checked true (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") )


如果你使用jQuery 1.6 ,代码if ( $(elem).attr("checked") ),将获得一个属性(attribute) ,它不改变该复选框被选中和选中。它只是用来存储默认或选中属性的初始值。为了保持向后兼容,.attr() 方法从 jQuery 1.6.1+ 开始除了返回属性值外,还会更新 property 属性,因此 boolean attribute(布尔属性)不需要通过 .prop() 来改变其值。推荐使用上述方法之一,来取得 checked 的值。

标签:jquery,checkbox,选中
0
投稿

猜你喜欢

  • 宝丽通实现连续播放实现代码

    2022-08-14 22:17:45
  • IE的有条件注释详解(附实例代码)

    2009-03-31 13:01:00
  • python 深度学习中的4种激活函数

    2023-10-23 19:42:23
  • python 与c++相互调用实现

    2023-01-11 13:20:19
  • 为MySQL提权简单方法

    2009-08-29 15:21:00
  • vue.js初学入门教程(1)

    2023-07-02 17:06:21
  • MySQL事务(transaction)看这篇就足够了

    2024-01-12 13:54:09
  • CSS网页布局编码小技巧整理

    2009-12-30 16:50:00
  • 如何利用触发器实现两个数据库间的同步

    2009-01-06 11:26:00
  • Django中从mysql数据库中获取数据传到echarts方式

    2024-01-22 02:06:25
  • Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解

    2021-10-15 16:14:07
  • 管理员必读10个重要MySQL客户启动选项

    2008-06-07 16:57:00
  • 浅谈Python中的bs4基础

    2022-11-05 16:57:47
  • Python中层次聚类的详细讲解

    2022-07-02 06:07:13
  • Python groupby函数图文详解

    2021-10-01 06:17:09
  • 长文章自动分页类

    2008-09-10 12:11:00
  • 关于vue中根据用户权限动态添加路由的问题

    2024-05-05 09:25:11
  • 举例讲解Python设计模式编程中的访问者与观察者模式

    2021-06-10 06:38:16
  • 基于PyTorch实现EdgeCNN的实战教程

    2023-12-30 22:28:20
  • 轻松创建nodejs服务器(1):一个简单nodejs服务器例子

    2024-05-11 10:14:21
  • asp之家 网络编程 m.aspxhome.com