jquery prop()方法 解决全选 不全选 反选 问题 解决执行一次不不能再执行问题

//1、如果通过prop()函数更改<input>和<button>元素的type属性,在多数浏览器上将会抛出一个错误,因为该属性一般不允许在后期更改。//如果使用prop()函数操作表单元素的checked、selected、disabled等属性,如果该元素被选中(或禁用),则返回true,否则(意即HTML中没有该属性)返回false。//3、prop()函数还可以设置或返回DOM元素的Element对象上的某些属性,例如:tagName、selectedIndex、nodeName、nodeType、ownerDocument、defaultChecked和defaultSelected等属性。//在IE9及更早版本中,如果使用prop()函数设置的属性值不是一个简单的原始值(String、Number、Boolean),并且在对应的DOM元素被销毁之前,该属性没有被移除,则可能会导致内存泄漏问题。如果你只是为了存储数据,建议你使用data()函数,以避免内存泄漏问题。
<script>
$(function () {
       $("#j_cbAll").click(function () {
           //如果全选按钮被选中 则所有按钮军被选中   上面有prop用法 用prop()方法解决执行一次之后不能再全选问题
           $("#j_tb :checkbox").prop("checked", $(this).prop("checked"));
       });

       $("#j_tb :checkbox").click(function () {
            singleClick();
       });

      $("#fanxuan").click(function () {
          $("#j_tb :checkbox").each(function () {
              //反选
              $(this).prop("checked", !$(this).prop("checked"));
              singleClick();
          });

      });
       // 如果有一个子的checkbox没有选中,全选不选中 如果子的checkbox都选中了,全选选中
       function singleClick(){
           //如果子元素没有被选中 全选不选中
           if(!$("#j_tb :checkbox").checked){
               $("#j_cbAll").prop("checked",false);
           }
           //checkbox的个数
           var chsub = $("#j_tb :checkbox").length;
           //checkbox选中的个数
           var checkedsub = $("#j_tb :checkbox:checked").length;      //判断选择个数与所有个数是否相同
           if (checkedsub === chsub) {          //全选按钮被选中
               $("#j_cbAll").prop("checked", true);
           };
       }

   });
</script>
 


<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        * {
            padding: 0;
            margin: 0;
        }

        .wrap {
            width: 300px;
            margin: 100px auto 0;
        }

        table {
            border-collapse: collapse;
            border-spacing: 0;
            border: 1px solid #c0c0c0;
            width: 300px;
        }

        th,
        td {
            border: 1px solid #d0d0d0;
            color: #404060;
            padding: 10px;
        }

        th {
            background-color: #09c;
            font: bold 16px "微软雅黑";
            color: #fff;
        }

        td {
            font: 14px "微软雅黑";
        }

        tbody tr {
            background-color: #f0f0f0;
        }

        tbody tr:hover {
            cursor: pointer;
            background-color: #fafafa;
        }
    </style>
    <script src="../js/jquery-1.12.4.js"></script>
</head>
<body>
<div class="wrap">
    <table>
        <thead>
        <tr>
            <th>
                <input type="checkbox" id="j_cbAll" />
            </th>
            <th>菜名</th>
            <th>饭店</th>
        </tr>
        </thead>
        <tbody id="j_tb">
        <tr>
            <td>
                <input type="checkbox" name="checkbox" />
            </td>
            <td>红烧肉</td>
            <td>田老师</td>
        </tr>
        <tr>
            <td>
                <input type="checkbox" name="checkbox" />
            </td>
            <td>西红柿鸡蛋</td>
            <td>田老师</td>
        </tr>
        <tr>
            <td>
                <input type="checkbox" name="checkbox" />
            </td>
            <td>红烧狮子头</td>
            <td>田老师</td>
        </tr>
        <tr>
            <td>
                <input type="checkbox" name="checkbox" />
            </td>
            <td>日式肥牛</td>
            <td>田老师</td>
        </tr>
        <tr>
            <td id="fanxuan">反选</td>
        </tr>
        </tbody>
    </table>
</div>

</body>
</html>
时间: 2024-10-12 13:18:52

jquery prop()方法 解决全选 不全选 反选 问题 解决执行一次不不能再执行问题的相关文章

复选框作为按钮 实现全选/不全选

$(function () {            $("#checkAll").click(function () {                $('input[name="infoids[]"]').attr("checked", this.checked);            });            var $subBox = $("input[name='infoids[]']");         

jQuery prop() 方法

1.方法简介 prop() 方法设置或返回被选元素的属性和值. 2.方法示例 <!DOCTYPE html> <html> <head> <title></title> </head> <body> <input type="checkbox" id="ck" />全选 <br /><br /> <input type="check

jquery实现全选、取消反选、加JavaScript三元运算(三种法法实现反选)

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 </head> 7 <body> 8 9 <input type="button" value="全选" onclick="c

jquery中attr方法和prop方法的区别

关于checked的属性,最重要的概念就是你要记住,它跟checked的状态值是毫无关系的,设置checked = "checked"或者checked = "true"等属性设置,和它的状态值true/false是无关的.,而这里的属性值,事实上只是和defaultChecked的状态值有关,并且只能用来设置checkbox的初始的值.checked的属性值并不会随着checkbox的的状态变化而变化,可是checkbox的状态值却会.因此,为了能更好的跨浏览器的

用jQuery实现复选框的全选、全不选、和反选

用一个例子来说明一下,html页面代码如下 <table border="1" align="center"> <thead> <tr> <th>状态</th> <th>用户名</th> </tr> </thead> <tbody> <tr> <td><input type="checkbox" /

jQuery隔行换色+全选/全部选demo

隔行换色 html代码 <table border="1" cellspacing="" cellpadding="" width="500px"> <tr> <td>测试数据</td> <td>测试数据</td> <td>测试数据</td> <td>测试数据</td> </tr> <tr&

jquery-实现全选与不全选

jquery代码: 省略引用jquery代码. <script type="text/javascript"> //全选    $(function() {        $("#selectAll").click(function() {            if (this.checked) {                $("#chapterlist :checkbox").each(function() {      

使用jquery的方法和技巧2,点击多选框的jquery响应

使用jquery来控制多选框的变化 功能描述: 1.第一层 当选中后台应用(App1)时,所有多选框都被选择. 当取消选中后台应用(App1)时,所有多选框都被取消选择. 第一层的逻辑如下: 2.第二层 a.对所有亲子多选框而言 当选择帖子管理(控制器Action02)时,所有亲子多选框被选择. 当取消选择帖子管理(控制器Action02)时,所有亲子多选框被取消选择. b.对亲父级多选框:后台应用(App1)而言 当选择帖子管理(控制器Action02)时,亲父App多选框被选择. 当取消选择

JQUERY的给Check全选功能

//给Checkbox提供全选功能 $("#checkall").click(function(){ if(this.checked){ $("input[name='checkname[]']").each(function(){ this.checked = true; }); }else{ $("input[name='checkname[]']").each(function(){ this.checked = false; }); }