1. 程式人生 > 其它 >簡單的點菜(複選框)---原生js

簡單的點菜(複選框)---原生js

技術標籤:jscheckbox

在這裡插入圖片描述
實現效果:點選頭部,全選或全部取消
下面4個全點選 ,頭部也點選

<div class="wrap">
        <table>
          <thead>
          <tr>
            <th>
              <input type="checkbox" id="allcheck""/>
            </th>
            <
th
>
菜名</th> <th>飯店</th> </tr> </thead> <tbody id="onecheck"> <tr> <td> <input type="checkbox"/> </td> <td>酸菜魚</td>
<td>A飯店</td> </tr> <tr> <td> <input type="checkbox"/> </td> <td>宮保雞丁</td> <td>B飯店</td> </tr> <tr> <
td
>
<input type="checkbox"/> </td> <td>鍋包肉</td> <td>C飯店</td> </tr> <tr> <td> <input type="checkbox"/> </td> <td>奶茶</td> <td>D飯店</td> </tr> </tbody> </table> </div>
    function my$(id){
        return document.getElementById(id)
    }
    var ta = my$("onecheck");
    var inpobj = ta.getElementsByTagName("input");
    my$("allcheck").onclick = function(){
        for(var i=0;i<inpobj.length;i++){
            inpobj[i].checked = this.checked;
        }
    }
    for(var i=0;i<inpobj.length;i++){
        inpobj[i].onclick = function(){
            flag = true;
            for(var j=0;j<inpobj.length;j++){
                if(!inpobj[j].checked){
                    flag = false;
                    break;
                }
            }
            my$("allcheck").checked = flag;
        }
    }

最後設定一個flag就可以了
每次點選一個選單都把所有的檢查一遍,如果有沒選的,flag直接等於false,退出迴圈