jquery checkbox选中状态以及实现全选反选
jquery1.6以下版本获取checkbox的选中状态:
$('.ck').attr('checked');
$('.ck').attr('checked',true);//全选
$('.ck').removeAttr('checked');//全不选
发现,以上代码,无论input checkbox是选中还是未选中状态,无论IE还是Chrome,返回结果都是undefinded;
查阅发现:jquery1.6版本对此作了修改,checked属性在页面初始化的时候就已经初始化好了,不会随着状态改变而变。也就是说checkbox在页面加载完毕是选中状态,则永远返回checked,如果一开始没被选中,则永远返回undefinded。
jquery1.6及以上版本获取checkbox的选中状态:
$('.ck').prop('checked');
$('.ck').prop('checked',true);//选中
$('.ck').prop('checked', function(i, attr){return !attr;});//反选
突然想到,可以通过反选实现c/s系统中的RadioBox的单选框功能,如下:
<div>
<li style="margin: 5px; float: left; min-width:200px;min-height:24px;">
<input class="ckbox" id="ck_0" type="checkbox" checked /><label for="ck_0">是</label><!--默认选中css样式参考http://www.csscheckbox.com/checkboxes/1/-->
</li>
<li style="margin: 5px; float: left; min-width:200px;min-height:24px;">
<input class="ckbox" id="ck_1" type="checkbox" /><label for="ck_1">否</label>
</li>
</div>
JS实现单选控制如下:
//这儿实现的只针对两个checkbox的情况,多个checkbox自由发挥呗
$('.ckbox').click(function () {
$('.ckbox').not($(this)).prop('checked', function (i, attr) { return !attr; });//除自身外反选
});
效果如下图:

在Jquery 1.6及之后,新加了一个方法prop(),通过attr方法去获得属性,通过prop方法去获得特性。在遇到要获取或设置checked,selected,readonly和disabled等属性时,用prop方法。
官方解释prop():获取在匹配的元素集中的第一个元素的属性值。
大家都知道有的浏览器只要写disabled,checked就可以了,而有的要写成disabled = "disabled",checked="checked",比如用attr("checked")获取checkbox的checked属性时选中的时候可以取到值,值为"checked"但没选中获取值就是undefined。
jq提供新的方法“prop”来获取这些属性,就是来解决这个问题的,以前我们使用attr获取checked属性时返回"checked"和"",现在使用prop方法获取属性则统一返回true和false。
那么,什么时候使用attr(),什么时候使用prop()?
1.添加属性名称该属性就会生效应该使用prop();
2.是有true,false两个属性使用prop();
3.其他则使用attr();
以下是官方建议attr(),prop()的使用:
|
Attribute/Property |
.attr() |
.prop() |
|
accesskey |
√ |
|
|
align |
√ |
|
|
async |
√ |
√ |
|
autofocus |
√ |
√ |
|
checked |
√ |
√ |
|
class |
√ |
|
|
contenteditable |
√ |
|
|
draggable |
√ |
|
|
href |
√ |
|
|
id |
√ |
|
|
label |
√ |
|
|
location ( i.e. window.location ) |
√ |
√ |
|
multiple |
√ |
√ |
|
readOnly |
√ |
√ |
|
rel |
√ |
|
|
selected |
√ |
√ |
|
src |
√ |
|
|
tabindex |
√ |
|
|
title |
√ |
|
|
type |
√ |
|
|
width ( if needed over .width() ) |
√ |
jquery checkbox选中状态以及实现全选反选的更多相关文章
- jquery checkbox选中状态
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 简单的jquery表单验证+添加+删除+全选/反选
//布局 <body> <h4><a href="#">首页</a>><a href="#"> ...
- JQuery 更改属性 JQ对象循环 each 全选反选 三元运算
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- JavaScript 实现全选 / 反选功能
JavaScript 实现全选 / 反选功能 版权声明:未经授权,内容严禁转载! 构建主体界面 编写 HTML 代码 和 CSS 代码,设计主题界面 <style> #user { wid ...
- 使用JQuery获取被选中的checkbox的value值 以及全选、反选
以下为使用JQuery获取input checkbox被选中的值代码: <html> <head> <meta charset="gbk"> & ...
- 前端开发学习之——使用jquery/javascript判断及改变checkbox选中状态
一.使用jquery判断及改变checkbox选中状态 1.使用JQuery判断一个checkbox 是否为选中: (1).attr('checked) 看JQuery版本1.6+返回:”checke ...
- jQuery全选/反选checkbox
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- jquery、js操作checkbox全选反选
全选反选checkbox在实际应用中比较常见,本文有个不错的示例,大家可以参考下 操作checkbox,全选反选//全选 function checkAll() { $('input[name=&qu ...
- jquery、js全选反选checkbox
操作checkbox,全选反选 //全选 function checkAll() { $('input[name="TheID"]').attr("checked&quo ...
随机推荐
- 使用HTML5制作loading图
昨天发了一篇使用HTML5 canvas写的时钟的文章,今天发一篇关于使用HTML5制作loading图的文章. <!DOCTYPE html> <html> <head ...
- Mr. Frog’s Game(模拟连连看)
Description One day, Mr. Frog is playing Link Game (Lian Lian Kan in Chinese). In this game, if you ...
- 20145214 《Java程序设计》第9周学习总结
20145214 <Java程序设计>第9周学习总结 教材学习内容总结 JDBC简介 JDBC全名Java DataBase Connectivity,是java联机数据库的标准规范.它定 ...
- Web后台任务处理
文章:.NET Core开源组件:后台任务利器之Hangfire Hangfire官网介绍:在.NET和.NET Core应用程序中执行后台处理的简便方法.无需Windows服务或单独的过程. 以持久 ...
- 【PHP】- PHPStorm+XDebug进行调试图文教程
转载:https://www.cnblogs.com/LWMLWM/p/8251905.html 这篇文章主要为大家详细介绍了PHPStorm+XDebug进行调试图文教程,内容很丰富,具有一定的 ...
- (转)Linux常用性能检测命令
一.uptime Uptime命令的显示结果包括服务器已经运行了多长时间,有多少登陆用户和对服务器性能的总体评估(load average).load average值分别记录了上个1分钟,5 ...
- H3C SNMP配置解析
华为交换机snmp配置 snmp-agent /使能snmp服务/snmp-agent local-engineid ...
- JavaScript 语句标识符,变量周期,常见的HTML事件
语句 描述 break 用于跳出循环. catch 语句块,在 try 语句块执行出错时执行 catch 语句块. continue 跳过循环中的一个迭代. do ... while 执行一个语句块, ...
- [洛谷P4139]上帝与集合的正确用法
题目大意:多次询问,每次给你$p$询问$2^{2^{2^{\dots}}}\bmod p$ 题解:扩展欧拉定理,求出$\varphi(p)$即可.因为$2^{2^{2^{\dots}}}>> ...
- BZOJ5343 & 洛谷4602 & LOJ2555:[CTSC2018]混合果汁——题解
https://www.luogu.org/problemnew/show/P4602 https://loj.ac/problem/2555 https://www.lydsy.com/JudgeO ...