zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    poj 2411 Mondriaan's Dream 骨牌铺放 状压dp
    zoj 3471 Most Powerful (有向图)最大生成树 状压dp
    poj 2280 Islands and Bridges 哈密尔顿路 状压dp
    hdu 3001 Travelling 经过所有点(最多两次)的最短路径 三进制状压dp
    poj 3311 Hie with the Pie 经过所有点(可重)的最短路径 floyd + 状压dp
    poj 1185 炮兵阵地 状压dp
    poj 3254 Corn Fields 状压dp入门
    loj 6278 6279 数列分块入门 2 3
    VIM记事——大小写转换
    DKIM支持样本上传做检测的网站
  • 原文地址:https://www.cnblogs.com/lcf1314/p/5616304.html
Copyright © 2011-2022 走看看