最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js實現(xiàn)添加刪除表格操作

 更新時間:2021年10月08日 17:33:22   作者:星嶼H  
這篇文章主要為大家詳細介紹了js實現(xiàn)添加刪除表格操作,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了js實現(xiàn)添加刪除表格的具體代碼,供大家參考,具體內(nèi)容如下

效果:

1、點擊添加按鈕 往table中添加一行  將全選前面的復(fù)選框變成false

1.1.當前新增的復(fù)選框加上點擊事件

2、點擊刪除按鈕 獲取表格體中被選中的行, 刪除整個tr, 將全選前面的復(fù)選框變成false

 獲取的是第一個td中的checkbox的狀態(tài) checked為true 2層父子

3 、點擊全選按鈕前面的復(fù)選框 如果被選中 下面的每一個復(fù)選框都被選中 如果不被選中 下面的每一個復(fù)選框都不被選中

4、點擊每一個表格體中的復(fù)選框, 如果所有的復(fù)選框都被選中, 全選按鈕就是被選中, 如果有一個沒有被選中, 全選按鈕就是不選中狀態(tài)

css:

 <style>
        .head {
            width: 500px;
            padding: 8px;
            margin: 20px auto;
            box-sizing: border-box;
            border: 1px solid #eee;
        }
 
        input {
            margin-left: 3px;
            outline: none;
        }
 
        button {
            float: right;
        }
 
        table {
            width: 500px;
            border: 1px solid #000;
            margin: 0 auto;
            border-collapse: collapse;
        }
 
        tr,
        td,
        th {
            border: 1px solid #000;
        }
 
        tr td:nth-child(1) {
            text-align: center;
        }
 
        .foot {
            width: 500px;
            margin: 8px auto;
            padding: 8px;
            box-sizing: border-box;
 
        }
 
        .foot button {
            float: right;
        }
 
        td:nth-child(2),
        td:nth-child(3),
        td:nth-child(4) {
            width: 20%;
        }
</style>

html:

<div class="head">
        <span>請輸入姓名 :</span><input type="text"><br>
        <span>請輸入性別 :</span><input type="radio" name="sex" checked>男<input type="radio" name="sex">女<br>
        <span>請輸入年齡 :</span><input type="text"><button>添加到表格</button>
    </div>
    <table>
        <thead>
            <th><input type="checkbox"> 全選</th>
            <th>姓名</th>
            <th>性別</th>
            <th>年齡</th>
        </thead>
        <tbody>
            <tr class="tr1">
                <td><input type="checkbox"></td>
                <td>張三</td>
                <td>女</td>
                <td>88</td>
            </tr>
            <tr>
                <td><input type="checkbox"></td>
                <td>李四</td>
                <td>男</td>
                <td>18</td>
            </tr>
            <tr>
                <td><input type="checkbox"></td>
                <td>王五</td>
                <td>女</td>
                <td>12</td>
            </tr>
        </tbody>
    </table>
<div class="foot"><button>刪除所選行</button></div>

javascript:

 // 事件三部曲
 // 1. 獲取元素 按鈕 table  tBody  復(fù)選框  inp
        var btns = document.querySelectorAll('button');
        var table = document.querySelector('table');
        var inps  = document.querySelectorAll('input');
        var all = table.tHead.querySelector('input');
        var cks = table.tBodies[0].getElementsByTagName('input');
        var cks1 = table.tBodies[0].querySelectorAll('input');
        // console.log(btns, table, inps, cks);
        // console.log(cks, all);
        console.log(cks, cks1);
 
        // 2. 點擊添加按鈕
        btns[0].onclick = function(){
            // 3. 往table中添加一行
            var tr = document.createElement('tr');
            // 4. tr加到tbody
            table.tBodies[0].appendChild(tr);
 
            // 5. 創(chuàng)建td
            var inp = document.createElement('td');
            inp.innerHTML = '<input type="checkbox">';
            tr.appendChild(inp);
 
            var user = document.createElement('td');
            user.innerHTML = inps[0].value;
            tr.appendChild(user);
 
            var sex = document.createElement('td');
            sex.innerHTML = inps[1].checked ? '男' : '女';
            tr.appendChild(sex);
 
            var age = document.createElement('td');
            age.innerHTML = inps[3].value;
            tr.appendChild(age);
 
            // 6. 全選前面的復(fù)選框變成false 
            all.checked = false;
 
            // 當前新增的復(fù)選框加上點擊事件
            var bck = tr.querySelector('input');
            console.log(bck);
            bck.onclick = function(){
                auto();
            }
        }
 
 
        // 7. 點擊刪除按鈕 刪除所選中的行
        btns[1].onclick = function(){
            // 8. 獲取表格體中被選中的行
            // console.log(cks, cks1);
            // 9. 判斷復(fù)選框是否被選中
            for(var i = 0; i < cks.length; i++){
                console.log(cks);
                if(cks[i].checked){
                    // console.log(cks[i].parentNode.parentNode);
                    // console.log(cks);
                    // 10. 刪除整行
                    cks[i].parentNode.parentNode.remove();
                    i--;
                }
            }
            // 11. 將全選前面的復(fù)選框變成false
            all.checked = false;
        }
      
        // 點擊全選按鈕前面的復(fù)選框 如果被選中 下面的每一個復(fù)選框都被選中 如果不被選中 下面的每一個復(fù)選框都不被選中 
        // 12. 點擊all
        all.onclick = function(){
            console.log(all.checked);
            // 13. 每一個
            for(var i = 0; i < cks.length;i++){
                cks[i].checked = all.checked;
            }
        }
 
        // 點擊每一個表格體中的復(fù)選框, 如果所有的復(fù)選框都被選中, 全選按鈕就是被選中, 如果有一個沒有被選中, 全選按鈕就是不選中狀態(tài)
        for(var j = 0; j < cks.length; j++){
            // 點擊
            cks[j].onclick = function(){
                // 所有的
                // for(var i = 0; i < cks.length; i++){
                //     console.log(cks[i].checked);
                //     // 如果有一個沒有被選中, 全選按鈕就是不選中狀態(tài)
                //     if(cks[i].checked == false){
                //         // 全選按鈕就是不選中
                //         all.checked = false;
                //         // 結(jié)束整個函數(shù)
                //         return;
                //     }
                // }
                // // 所有的都被選中
                // all.checked = true;
                auto();
            }
        }
 
        function auto() {
            // 所有的
            for(var i = 0; i < cks.length; i++){
                    console.log(cks[i].checked);
                    // 如果有一個沒有被選中, 全選按鈕就是不選中狀態(tài)
                    if(cks[i].checked == false){
                        // 全選按鈕就是不選中
                        all.checked = false;
                        // 結(jié)束整個函數(shù)
                        return;
                    }
                }
                // 所有的都被選中
                all.checked = true;
        }

效果:

 

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Javascript設(shè)計模式之觀察者模式的多個實現(xiàn)版本實例

    Javascript設(shè)計模式之觀察者模式的多個實現(xiàn)版本實例

    這篇文章主要介紹了Javascript設(shè)計模式之觀察者模式的多個實現(xiàn)版本實例,本文給出3種實現(xiàn)版本代碼,同時給出了Jquery實現(xiàn)版本,需要的朋友可以參考下
    2015-03-03
  • JavaScript工具庫之Lodash詳解

    JavaScript工具庫之Lodash詳解

    這篇文章主要介紹了JavaScript工具庫之Lodash詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,,需要的朋友可以參考下
    2019-06-06
  • javascript運動框架用法實例分析(實現(xiàn)放大與縮小效果)

    javascript運動框架用法實例分析(實現(xiàn)放大與縮小效果)

    這篇文章主要介紹了javascript運動框架用法,結(jié)合實例形式分析了javascript運動框架的實現(xiàn)與使用技巧,可實現(xiàn)div塊的放大與縮小功能,需要的朋友可以參考下
    2016-01-01
  • Javascript函數(shù)式編程簡單介紹

    Javascript函數(shù)式編程簡單介紹

    什么是函數(shù)式編程?根據(jù)百度百科的描述,“函數(shù)式編程是種編程典范,它將電腦運算視為函數(shù)的計算。函數(shù)編程語言最重要的基礎(chǔ)是 λ 演算(lambda calculus)。而且λ演算的函數(shù)可以接受函數(shù)當作輸入(參數(shù))和輸出(返回值)。”
    2015-10-10
  • 基于mpvue小程序使用echarts畫折線圖的方法示例

    基于mpvue小程序使用echarts畫折線圖的方法示例

    這篇文章主要介紹了基于mpvue小程序使用echarts畫折線圖的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • js讀取并解析JSON類型數(shù)據(jù)的方法

    js讀取并解析JSON類型數(shù)據(jù)的方法

    這篇文章主要介紹了js讀取并解析JSON類型數(shù)據(jù)的方法,具體分析了json格式的功能、用途與JS解析技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11
  • Ajax驗證用戶名或昵稱是否已被注冊

    Ajax驗證用戶名或昵稱是否已被注冊

    本文主要介紹了Ajax驗證用戶名或昵稱是否已被注冊的實例方法。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • JavaScript每天必學之事件

    JavaScript每天必學之事件

    JavaScript每天必學之事件,聊一聊事件冒泡與捕獲、事件冒泡的好處,感興趣的小伙伴們可以參考一下
    2016-09-09
  • 原生js實現(xiàn)公告滾動效果

    原生js實現(xiàn)公告滾動效果

    這篇文章主要為大家詳細介紹了原生js實現(xiàn)公告滾動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • javascript設(shè)計模式之迭代器模式

    javascript設(shè)計模式之迭代器模式

    這篇文章主要為大家詳細介紹了javascript設(shè)計模式之迭代器模式,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-01-01

最新評論

琼中| 皋兰县| 锡林郭勒盟| 介休市| 台州市| 剑川县| 水城县| 云龙县| 麻栗坡县| 宜良县| 尚义县| 宜宾县| 电白县| 新乐市| 普兰店市| 岳阳县| 北流市| 郴州市| 扎兰屯市| 唐山市| 丰宁| 延吉市| 伊吾县| 古交市| 丽江市| 永宁县| 建昌县| 丁青县| 凉城县| 麻栗坡县| 盖州市| 侯马市| 壤塘县| 长海县| 定南县| 渝北区| 清苑县| 富裕县| 徐州市| 安平县| 德庆县|