关于checkbox全选与全不选的实现与遇到的问题
HTML:
<div class="outbox">
<label for="box">全选</label>
<input type="checkbox" id="box"/>
</div>
<div class="outbox2">
<label for="box1">选项1</label>
<input type="checkbox" id="box1" name="goods"/>
<label for="box2">选项2</label>
<input type="checkbox" id="box2" name="goods"/>
</div>
第一种方法:
$("#box).click(function(){
if($(this).is(":checked)){
$("input[name='goods']").attr("checked","checked");
}else{
$("input[name='goods']").removeAttr("checked","checked");
}
})
本以为这种方法能完成全选与全不选的功能,但是当第一次点击时,能正确全选,再点击也能正确全不选;但是当再次点击的时候,就不能全选与全不选了,点了完全没作用。找不到原因是什么!
第二种方法:
$("#box).click(function(){
if(this.checked){
$("input[name='goods']").each(function(){
this.checked=true;
})
}else{
$("input[name='goods']").each(function(){
this.checked=false;
})
}
})
这种方法就能正确的实现全选与全不选的功能了。这又是为什么呢?
第三种方法:
1)
$("#box).change(function(){
$("input[name='goods']").prop("checked",this.checked);
})
2)
$("#box).click(function(){
if($(this).is(":checked")){
$("input[name='goods']").prop("checked",true);
}else{
$("input[name='goods']").prop("checked",false);
}
})
或者是把prop里的布尔值,true改成“checked”,false改成 “ ”。也可已实现全选与全不选的功能。
疑问:为什么prop就可以直接赋值,而attr这样赋值就不行呢?
我一开始的时候,checkbox是未选中状态,alert($("#box").attr("checked"))一直返回的是defined,但是alert($("#box").prop("checked"))返回的就是false;这是为什么捏?
有位网友也遇到过类似的问题,链接:http://www.jb51.net/article/51136.htm
原因是在jquery1.6版本,对checked属性在页面初始化的时候已经初始化好了,不会随着状态的改变而改变。也就是说如果checkbox在页面加载完毕是选中的,那么返回的永远都是选中状态,但是如果一开始就没有被选中,返回的永远是undefined。
prop()函数用于设置或返回当前jq对象所匹配的元素的属性值,该函数属于jq对象。如果要删除DOM元素的属性,就用removeProp()函数
prop()与attr()的区别:链接:http://www.365mini.com/page/jquery-attr-vs-prop.htm
关于checkbox全选与全不选的实现与遇到的问题的更多相关文章
- CheckBox复选框全选以及获取值
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- jquery的checkbox 全选和全不选
今天写了一个checkbox的全选和全不选的功能: var check_all=function(){ if(this.checked){ //alert($(".adv_check_num ...
- jquery checkbox的相关操作——全选、反选、获得所有选中的checkbox
1.全选 $("#btn1").click(function(){ $("input[name='checkbox']").attr("checked ...
- jQuery checkbox 所有 全选、全不选、是否选中等
下面是网络收集: jquery判断checked的三种方法:.attr('checked): //看版本1.6+返回:”checked”或”undefined” ;1.5-返回:true或fals ...
- checkbox 的全选与全不选
checkbox 的全选与全不选 只需要调用 cekAll.check();方法,这个方法接收两个参数: 参数一: 全选按钮的 id 以字符串的形式写 参数二: 其他 checkbox 的 name ...
- jQuery实现CheckBox全选、全不选
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- jquery checkbox全选,全不选,反选方法,jquery checkbox全选只能操作一次
jquery checkbox全选,全不选,反选方法, jquery checkbox全选只能操作一次, jquery checkbox全选只有第一次成功 >>>>>&g ...
- Jquery CheckBox复选框 全选/取消全选 最佳实现方式 参考案例
<input id="chkAll" type="checkbox" />全选/取消全选</div> <asp:Repeater ...
- checkbox复选框全选批量删除
多选框全选实现批量删除 html代码 <body> <form action="" method="post" name="Form ...
- 关于在repeater中的checkbox实行多选和全选
今天项目中用到这一块,是一个b2b商城,业务是别人给客户留言后,客户从会员中心的留言管理中查看,用checkbox实行多选和全选后进行批量审核 首先在checkbox后加个hidden,作用见代码: ...
随机推荐
- 继承:call、apply、bind方法
javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向. call,apply,bind这 ...
- 网易云课堂-----Linux内核分析-----期末主观题
姚歌 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 下面是对8个课题的 ...
- 软件分析之QQ
腾讯QQ(简称“QQ”)是腾讯公司开发的一款基于Internet的即时通信软件.腾讯QQ支持在线聊天.视频通话.点对点断点续传文件.共享文件.网络硬盘.自定义面板.QQ邮箱等多种功能,并可与多种通讯终 ...
- I/O(输入/输出)
1.创建引用ObjectInputStream ois =null; ObjectOutputStream oos = null; ByteArrayInputStream bais = null; ...
- 6-Python3从入门到实战—基础之数据类型(元组-Tuple)
Python从入门到实战系列--目录 元组的定义 定义元组只需要在括号中添加元素,并使用逗号隔开即可 tup = ('Python','Java','C++','Kotlin') 元组与列表的区别 P ...
- 伪静态与重定向--RewriteRule
环境:windows 10,phpstudy,sublime text.服务器使用Apache,网站根目录为E:\phpstudy\www\,所以.htaccess放在www目录下. RewriteR ...
- about use Vue of methods
methods 处理事件 methods 在vue中处理一些逻辑方面的事情.vue事件监听的方式看上去有点违背分离的传统观念.而实际上vue中所有事件的处理方式和表达式都是严格绑定在当前的视图的vie ...
- [日常工作]Win2008r2 以及更高版本的操作系统安装Oracle10.2.0.5
1. 当时有特殊需求, 客户有win2008r2sp1以上的windows系统,但是数据库要使用Oracle10.2.0.5 的版本. 问题: 1. Oracle10 最高支持到 Win2008sp2 ...
- [安全]appscan 使用代理抓取其他客户端的请求
自己安全测试技能很低, 上级给的安全测试的任务给了自动化组的同事来做, 自己之前使用appscan的时候 只知道使用appscan的内置浏览器测试抓取请求 今天与自动化美女同事沟通发现有一个代理的功能 ...
- D3.js v5 Tutorials
D3.js v5 Tutorials D3.js v5 教程 https://github.com/d3/d3/blob/master/API.md CHANGES https://github.co ...