在尝试写复选框时候遇到一个问题,调试了很久都没调试出来,极其郁闷:

IE10,Chrome,FF中,对于选中状态,第一次$('#checkbox').attr('checked',true)可以实现

但是当通过代码清除选中,下次再通过代码 $('#checkbox').attr('checked',true) 去选中时

虽然代码中有checked='checked',但是画面表现都没有打勾。

例如如下的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<!-- 引入jQuery -->
<script src="../../scripts/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
//全选
$("#CheckedAll").click(function(){
$('[name=items]:checkbox').attr('checked', true);
});
//全不选
$("#CheckedNo").click(function(){
$('[type=checkbox]:checkbox').attr('checked', false);
});
}) </script>
</head>
<body>
<form method="post" action="">
你爱好的运动是?
<br/>
<input type="checkbox" name="items" value="足球"/>足球
<input type="checkbox" name="items" value="篮球"/>篮球
<input type="checkbox" name="items" value="羽毛球"/>羽毛球
<input type="checkbox" name="items" value="乒乓球"/>乒乓球
<br/>
<input type="button" id="CheckedAll" value="全 选"/>
<input type="button" id="CheckedNo" value="全不选"/>
<input type="button" id="CheckedRev" value="反 选"/> <input type="button" id="send" value="提 交"/>
</form>
</body>
</html>

后来查了查资料,发现在jquery 1.8.x中的版本,我们对于checkbox的选中与不选中操作如下:

判断是否选中

$('#checkbox').prop('checked')

设置选中与不选中状态:

$('#checkbox').attr('checked',true)

$('#checkbox').attr('checked',false)

但此方法在jquery1.9.1及其以后的版本中,就会出现如上文所示的问题,

后来查找相关的资料,发现现在attr('checked',true)都换成prop('checked',true)

prop()获取匹配的元素的属性值。
这个方法是jquery1.6以后出来的,用来区别之前的.attr()方法. 区别最大的一点就是:布尔型的属性,1.6以后都是用.prop()方法就好了。
这个布尔型的属性,再解释一下,是属性值只有true|false的属性。
还有种情况就是只添加属性名,不需要写属性值的就可以生效的也同样使用.prop()方法。比如:checked、disable这样的,其实它们说到底还是属于布尔型的属性。
1.添加属性名称该属性就会生效应该使用prop();
2.是有true,false两个属性使用prop();
3.其他则使用attr();

参考:http://blog.sina.com.cn/s/blog_655388ed01017cnc.html

最新文章

  1. 【原】AFNetworking源码阅读(六)
  2. BZOJ 1176 [Balkan2007]Mokia ——CDQ分治
  3. 使用Maven Assembly plugin将依赖打包进jar
  4. PowerDesigner反向数据库时遇到[Microsoft][ODBC SQL Server Driver][SQL Server]无法预定义语句。SQLSTATE = 37错误解决方法
  5. Interview----将一棵二叉树转换成其镜像
  6. mysql多表字段名重复的情况
  7. 【PythonChallenge】Level 5
  8. mongo数据管理java简易版
  9. hadoop 学习入门 一 云计算之旅
  10. GIT分支管理是一门艺术(转)
  11. 关于前端本地压缩图片,兼容IOS/Android/PC且自动按需加载文件之lrz.bundle.js
  12. 给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。
  13. JDK 安装目录中 native2ascii.exe 命令详解
  14. SpringMVC(1):Web MVC简介
  15. MySQL 8.0的关系数据库新特性详解
  16. tomcat 、eclipse插件安装、一个机器安装多个tomcat、tomcat闪退的问题解决
  17. tomcat设置开机自启动和后台运行
  18. 将nosetests的echo结果保存到本地文件
  19. java基础----&gt;java中变参函数的使用
  20. springboot注册bean失败

热门文章

  1. 如何在Linux上安装QQ
  2. Java并发编程学习笔记
  3. C#学习之泛型继承和静态成员
  4. uva 11424
  5. ITEXT5 Font &#39;d:\SIMSUN.TTC&#39; with &#39;Identity-H&#39; is not recognized.
  6. css渐变知识知多少
  7. 利用枚举算法实现todoList:把对应项添加的内容列表
  8. 【c#】winform 上传图片
  9. [洛谷P1404] 平均数
  10. iOS 网络请求--- AFNetworing的使用