关于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,作用见代码: ...
随机推荐
- 安装Visual Studio2013
安装Visual Studio2013现在官网下载在选择安装的可选功能这里,大家可以根据自己需要勾选,也可以默认全选.这里有个小功能,把鼠标放在文字上,会弹出各个功能的详细描述.选择四个常用的功能,另 ...
- 【MOOC EXP】Linux内核分析实验八报告
程涵 原创博客 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 进程的切换和系统的一般执行过程 知识点 ...
- 广商博客冲刺第二天new
队名:雷锋队 队员:叶子鹏 王佳宁 张奇聪 张振演 曾柏树 项目:广商博客(嵌入APP) 执笔人:王佳宁 第一天沖刺傳送門 第三天沖刺傳送門 今天主要是写需求分析,在经过组员的热烈地讨论,需求分析如下 ...
- Mesos的用途
http://mesos.apache.org/ https://mesosphere.com/why-mesos/ http://www.cnblogs.com/ee900222/p/docker_ ...
- Notepad++ 大小写转换
code_field_text 普通文本 code_field_user_id 用户ID code_field_customer_id 客户ID code_field_dict 数据字典 code_f ...
- CS、IP和PC寄存器
CS寄存器和IP寄存器: 首先强调一下,这两个寄存器非常非常重要,CS的全拼为“Code segment”,即代码段寄存器,对应于内存中的存放代码的内存区域,用来存放内存代码段区域的入口地址(段基址) ...
- [转帖]Tomcat目录结构详解
Tomcat目录结构详解 https://www.cnblogs.com/veggiegfei/p/8474484.html 之前应该是知道一点 但是没有这么系统 感谢原作者的描述. 1.bin: 该 ...
- python模块_hashlib详解
hashlib 摘要算法简介 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长 ...
- jmeter简单录制脚本
1 创建HTTP请求默认值. --添加线程组:右击"测试计划"→添加→Threads(Users)→线程组,建议重命名线程组增强可读性. --添加HTTH请求默认值:右击" ...
- text/css什麼意思
text/css用在style的type屬性中,表示style的標簽里的文本內容要當做層疊樣式表(css)來解析,放在html的頁面內部,是HTML的內部樣式表: text/html用在style的t ...