jQuery操作复选框checkbox技巧总结 ---- 设置选中、取消选中、获取被选中的值、判断是否选中等
转载:https://blog.csdn.net/chenchunlin526/article/details/77448168
jQuery操作复选框checkbox技巧总结 --- 设置选中、取消选中、获取被选中的值、判断是否选中等
一、checked属性定义
先了解下input标签的checked属性:
1、HTML <input> checked 属性
◆ 定义和用法
checked 属性是一个布尔属性。
checked 属性规定在页面加载时应该被预先选定的 <input> 元素。
checked 属性适用于 <input type="checkbox"> 和 <input type="radio">。
checked 属性也可以在页面加载后,通过 JavaScript 代码进行设置。
◆ HTML 4.01 与 HTML5之间的差异
无。
◆ HTML 与 XHTML 之间的差异
在 XHTML 中,禁止属性最小化,checked 属性必须定义为<input checked="checked" />。
本文讨论的范围为jQuery1.6+ 以上版本,现在jQuery已经到3.2.1了(2018年1月4日)! 。开发中建议使用1.11及以上版本。
二、checked属性的用法
注意:操作checked、disabled、selected属性,强制建议只用prop()方法!!,不要用attr()方法。
1、jQuery判断checked是否是选中状态的三种方法:
.attr('checked') // 返回:"checked"或"undefined" ;
.prop('checked') // 返回true/false
.is(':checked') // 返回true/false //别忘记冒号哦
2、jQuery赋值checked的几种写法:
所有的jQuery版本都可以这样赋值,不建议用attr():
$("#cb1").attr("checked","checked"); //通用做法,现在不推荐了
$("#cb1").attr("checked",true); //不标准,不推荐了
$("#cb1").attr("checked","true"); //不标准,不推荐了
jQuery的prop()的4种赋值(推荐如下写法):
$("#cb1").prop("checked",true); //标准写法,推荐!
$("#cb1").prop({checked:true}); //map键值对
$("#cb1").prop("checked",function(){
return true;//函数返回true或false
});
//$("#cb1").prop("checked","checked"); //不标准
三、标签中checked="checked"已有,但却不显示打勾的解决办法
在做web项目的时候,做了一个功能,就是当勾选栏目,把所有的角色全勾上。刚开始使用了如下代码:
function check(id,check) {
if (check) {
$("." + id).find("input[type='checkbox']").attr("checked", true);
} else {
$("." + id).find("input[type='checkbox']").attr("checked", false);
}
}
第一遍勾选和取消是有效的,但是第二遍以后就没反应了,查看了属性,发现checked属性一直存在,但是没显示勾。就考虑移除checked属性看看。
function check(id,check) {
if (check) {
$("." + id).find("input[type='checkbox']").attr("checked", true);
} else {
$("." + id).find("input[type='checkbox']").removeAttr("checked");
}
}
这次看到checked属性勾上有了,取消就没了,可是问题还是没解决,还是第二遍以后就没反应了。
可是我都用1.11的版本了,正确的做法是使用prop()方法设置checkbox的checked属性值。
function check(id,check) {
if (check) {
$("." + id).find("input[type='checkbox']").prop("checked", true);
} else {
$("." + id).find("input[type='checkbox']").prop("checked", false);
}
}
这个问题会出现的本质就是,jQuery中的attr()和prop()两个方法的使用区别。
具体请参考:
jQuery中的attr()与prop()设置属性、获取属性的区别 - chunlynn的小屋 - CSDN博客
http://blog.csdn.net/chenchunlin526/article/details/77426796
四、jQuery操作checkbox技巧总结
1、获取单个checkbox选中项的值(三种写法)
$("#chx1").find("input:checkbox:checked").val()
//或者
$("#chx1").find("input:[type='checkbox']:checked").val();
$("#chx1").find("input[type='checkbox']:checked").val();
//或者
$("#chx1").find("input:[name='ck']:checked").val();
$("#chx1").find("input[name='ck']:checked").val();
2、 获取多个checkbox选中项
$("#chk1").find('input:checkbox').each(function() { //遍历所有复选框
if ($(this).prop('checked') == true) {
console.log($(this).val()); //打印当前选中的复选框的值
}
});
function getCheckBoxVal(){ //jquery获取所有选中的复选框的值
var chk_value =[];
$("#chk1").find('input[name="test"]:checked').each(function(){ //遍历,将所有选中的值放到数组中
chk_value.push($(this).val());
});
alert(chk_value.length==0 ?'你还没有选择任何内容!':chk_value);
}
3、设置第一个checkbox 为选中值
$("#chk1").find('input:checkbox:first').prop("checked",true);
//或者
$("#chk1").find('input:checkbox').eq(0).prop("checked",true);
4、设置最后一个checkbox为选中值
$("#chk1").find('input:checkbox:last').prop("checked",true);
5、根据索引值设置任意一个checkbox为选中值
$("#chk1").find('input:checkbox').eq(索引值).prop('checked', true); //索引值=0,1,2....
//或者
$("#chk1").find('input:checkbox').slice(1,2).prop('checked', true); //同时选中第0个和第1个checkbox
//从索引0开始(包含),到索引2(不包含)的checkbox
6、根据value值设置checkbox为选中值
$("#chk1").find("input:checkbox[value='1']").prop('checked',true);
$("#chk1").find("input[type='checkbox'][value='1']").prop('checked',true);
7、删除checkbox:①删除value=1的checkbox ②删除第几个checkbox
$("#chk1").find("input:checkbox[value='1']").remove(); //将匹配元素从DOM中删除,将标签从页面上删除了
$("#chk1").find("input:checkbox").eq(index).remove(); //索引值 index=0,1,2....
//如删除第3个checkbox:
$("#chk1").find("input:checkbox").eq(2).remove();
8、全部选中或全部取消选中
$("#chk1").find('input:checkbox').each(function() {
$(this).prop('checked', true);
});
//或者
$("#chk1").find('input:checkbox').each(function () {
$(this).prop('checked',false);
});
9、选中所有奇数项或偶数项
$("#chk1").find("input[type='checkbox']:even").prop("checked",true); //选中所有偶数
$("#chk1").find("input[type='checkbox']:odd").prop("checked",true); //选中所有奇数
10、反选
方法一:
$("#btn4").click(function(){
$("input[type='checkbox']").each(function(){ //反选
if($(this).prop("checked")){
$(this).prop("checked",false);
} else{
$(this).prop("checked",true);
}
});
});
方法二:
$("#btn4").on('click',function(){
//反选所有的复选框(没选中的改为选中,选中的改为取消选中)
$("#chk1").find("input[type='checkbox']").prop("checked", function(index, oldValue){
return !oldValue;
});
}
本系列其他相关文章:
【1】jQuery中的attr()与prop()设置属性、获取属性的区别 - chunlynn的小屋 - CSDN博客
【2】<a>标签中 href 和 onclick 的区别,以及 onclick(this) 传递this参数详解 - chunlynn的小屋 - CSDN博客
【3】jQuery的removeProp()与removeAttr()移除属性的区别 - chunlynn的小屋 - CSDN博客
jQuery操作复选框checkbox技巧总结 ---- 设置选中、取消选中、获取被选中的值、判断是否选中等的更多相关文章
- jquery操作复选框(checkbox)十二技巧
jquery操作复选框(checkbox)的12个小技巧. 1.获取单个checkbox选中项(三种写法)$("input:checkbox:checked").val()或者$( ...
- Jquery操作复选框(CheckBox)的取值赋值实现代码
赋值 复选框 CheckBox 遍历 取值 1. 获取单个checkbox选中项(三种写法): $("input:checkbox:checked").val() 或者 $(&q ...
- Jquery对复选框CheckBox的操作
checkbox: 多选框 //获取选中值 checkbox:$("#checkbox_id").attr("value"): 多选框checkbox,打勾: ...
- 对jquery操作复选框
摘要:jquery操作复选框.使用更简洁易懂,思路清晰,逻辑更明了,很实用 <!DOCTYPE html> <html> <head> <meta chars ...
- jquery判断复选框checkbox是否被选中
jquery判断复选框checkbox是否被选中 使用is方法 //如果选中返回true //如果未选中返回false .is(':checked');
- 吾八哥学Selenium(三):操作复选框checkbox/单选框radio的方法
复选框checkbox和单选框radio是web网站里经常会使用到的两个控件,那么在web自动化测试的时候如何利用Selenium来操作这俩控件呢?今天我们就来简单入门练习一下! html测试页面代码 ...
- QTableView中嵌入复选框CheckBox 的四种方法总结
搜索了一下,QTableView中嵌入复选框CheckBox方法有四种: 第一种不能之前显示,必须双击/选中后才能显示,不适用. 第二种比较简单,通常用这种方法. 第三种只适合静态显示静态数据用 第四 ...
- python QQTableView中嵌入复选框CheckBox四种方法
搜索了一下,QTableView中嵌入复选框CheckBox方法有四种: 第一种不能之前显示,必须双击/选中后才能显示,不适用. 第二种比较简单,通常用这种方法. 第三种只适合静态显示静态数据用 第四 ...
- 基于CSS3自定义美化复选框Checkbox组合
今天我们要来分享一组非常漂亮的CSS3自定义复选框checkbox,每一个checkbox都有其各自的特点.有几款checkbox在选中的情况下还会出现动画效果,非常不错的CSS3自定义美化check ...
随机推荐
- [CQOI2014]和谐矩阵
嘟嘟嘟 遇到这种(看似)构造的题,我好像一般都做不出来-- 然而这题正解是高斯消元解异或方程组-- 首先我们容易列出式子a[i][j] ^ a[i - 1][j] ^ a[i + 1][j] ^ a[ ...
- 使用Nginx实现反向代理
一.代理服务器 1.什么是代理服务器 代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理服务 ...
- 四、Oracle 序列、常用函数、多表连接
一.序列定义:是oracle数据库专门用来产生连续且自动增长的数字的对象创建语法:create sequence 序列名(sq_表名) nocache(无缓存) create sequence sq_ ...
- 0、原生jdbc工厂类
一.代码结构 二.JDBCFactory.java package com.test; import java.io.IOException; import java.io.InputStream; ...
- RabbitMQ学习系列
http://www.cnblogs.com/zhangweizhong/category/855479.html https://www.cnblogs.com/zhangweizhong/p/56 ...
- docker 6 docker运行的底层原理
docker是一个client-server结构的系统,docker守护进程运行在主机上,然后通过socket连接从客户端访问,守护进程从客户端接收命令并管理运行在主机上的容器,是一个运行时的环境,就 ...
- day11---函数对象、名称空间、作用域、闭包函数
一.函数对象: 定义:函数对象就是函数名,函数名就是存放了函数的内存地址,存放了内存地址的变量就是对象 函数对象的应用: 可以直接被引用:(fn = cp_fn) 可以当做参数传递传递: comput ...
- 初学Python——第一节课
一.Python语言的特性: 1.与C语言不同,Python语言是一门解释性语言.程序在执行过程中,执行一步.编译一步. 2.Python是一个动态类型语言,不需要定义变量的数据类型. 3.Pytho ...
- Shell第二篇:正则表达式和文本处理工具
一 什么是正则 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则. 生活中处处都是正则: 比如我们描述:4条腿 ...
- Shiro安全框架入门笔记
入门 1.simpleRealmTest package cn.realm; import org.apache.shiro.SecurityUtils; import org.apache.shir ...