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全选与全不选的实现与遇到的问题的更多相关文章

  1. CheckBox复选框全选以及获取值

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  2. jquery的checkbox 全选和全不选

    今天写了一个checkbox的全选和全不选的功能: var check_all=function(){ if(this.checked){ //alert($(".adv_check_num ...

  3. jquery checkbox的相关操作——全选、反选、获得所有选中的checkbox

    1.全选 $("#btn1").click(function(){ $("input[name='checkbox']").attr("checked ...

  4. jQuery checkbox 所有 全选、全不选、是否选中等

    下面是网络收集: jquery判断checked的三种方法:.attr('checked):   //看版本1.6+返回:”checked”或”undefined” ;1.5-返回:true或fals ...

  5. checkbox 的全选与全不选

    checkbox 的全选与全不选 只需要调用 cekAll.check();方法,这个方法接收两个参数: 参数一: 全选按钮的 id 以字符串的形式写 参数二: 其他 checkbox 的 name ...

  6. jQuery实现CheckBox全选、全不选

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. jquery checkbox全选,全不选,反选方法,jquery checkbox全选只能操作一次

    jquery checkbox全选,全不选,反选方法, jquery checkbox全选只能操作一次, jquery checkbox全选只有第一次成功 >>>>>&g ...

  8. Jquery CheckBox复选框 全选/取消全选 最佳实现方式 参考案例

    <input id="chkAll" type="checkbox" />全选/取消全选</div> <asp:Repeater ...

  9. checkbox复选框全选批量删除

    多选框全选实现批量删除 html代码 <body> <form action="" method="post" name="Form ...

  10. 关于在repeater中的checkbox实行多选和全选

    今天项目中用到这一块,是一个b2b商城,业务是别人给客户留言后,客户从会员中心的留言管理中查看,用checkbox实行多选和全选后进行批量审核 首先在checkbox后加个hidden,作用见代码: ...

随机推荐

  1. 20135337——Linux内核分析:第十七章 模块与设备

    第17章 模块与设备 设备类型:在所有 Unix 系统中为了统一普通设备的操作所采用的分类. 模块: Linux 内核中用于按需加载和卸载目标码的机制. 内核对象:内核数据结构中支持面向对象的简单操作 ...

  2. PAT 1037 在霍格沃茨找零钱

    https://pintia.cn/problem-sets/994805260223102976/problems/994805284923359232 如果你是哈利·波特迷,你会知道魔法世界有它自 ...

  3. 批处理-For详解

    大纲 一 前言 二 for语句的基本用法 三 for /f (delims.tokens.skip.eol.userbackq.变量延迟) 四 for /r (递归遍历) 五 for /d (遍历目录 ...

  4. [转帖]新的Linux后门开始肆虐 主要攻击中国服务器

    新的Linux后门开始肆虐 主要攻击中国服务器 https://www.cnbeta.com/articles/tech/815639.htm 一种新的 Linux 系统后门已经开始肆虐,并主要运行在 ...

  5. auto_increment 自增键的一些说明

    导致auto_increment变小的几种情况: 1. alter table xx auto_increment = yy; 2. truncate table 3. restart mysql 第 ...

  6. layer 中 的type和 content

    type - 基本层类型 类型:Number,默认:0 layer提供了5种层类型.可传入的值有:0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层). 若你采用layer. ...

  7. hive数据查询

    Fetch task 丢弃了mapreduce的作业的繁重任务,查询方便简单 1.第一种方式 2.linux命令行 3.地3中

  8. Linux基础学习(6)--Linux软件安装

    第六章——Linux软件安装 一.软件包管理简介 1.软件包分类: (1)源码包:脚本安装包 (2)二进制包(RPM包.系统默认包) 2.源码包: (1)源码包的优点:开源,如果有足够的能力,可以修改 ...

  9. delphi 导出到excel的第1种方法

    第一种方法delphi 快速导出excel uses ComObj,clipbrd; function ToExcel(sfilename:string; ADOQuery:TADOQuery):bo ...

  10. jquery 語法

    基本形式: $(selector).action() 文檔加載函數: $(document).Ready{ function(){ //將所有的函數寫到文檔加載函數里,可以防止頁面未加載完全,就執行j ...