ネイティブjsが内容のテーブルへの追加や削除を実現します

知識ポイント:

操作テーブル:のinsertRow()、deleteRowを(
 )、insertCell()、deleteCell() 
表形式で一般的に使用されるメソッドとプロパティ: deleteRowを(行番号):行を削除 rowIndexに:行数の現在値を取得します。 insertRow(行番号):行、行数の値を追加します。 insertCell(数):TD細胞を添加し、細胞数を表します parentNode:親を探して代表

 

 

 

内容は、コードの上に直接、比較的単純です

<!DOCTYPE HTML>
<HTML>
<ヘッド>
    <メタ文字セット= " UTF-8 " >
    <タイトル>テーブル</ TITLE>
    <スタイルタイプ= " テキスト/ cssの" >
        * {
            マージン:0 ;
            パディング:0 ;
        }
        {
            リスト - スタイル:なし。
        }
        テーブル{
            幅:600PX。
            高さ:自動;
            国境 - 崩壊:崩壊。
            マージン:10pxの自動;
            テキスト - 整列:センター;
        }
        目、TD {
            パディング:10pxの;
        }
        テーブルTR:n番目 -child(1 ){
            テキスト - 整列:右;

        }
        入力{
            概要:なし。
        }
    </スタイル>
</ head>の
<身体>
    <テーブルのボーダー= " 1 " >
        <キャプション> CRUD </キャプション>
        <TR>
            <TD COLSPAN = " 1 " >
                <ボタンクラス = " insertTr " >插入行</ボタン>
            </ TD>
            <TD COLSPAN = " 4 " > 
                筛选:の<input type = " テキスト"名前= " filterStudent " >
            </ TD>
        </ TR>
        <TR>
            <番目>学号</目>
            <TH>名前</目>
            <TH>性別</目>
            <TH>年齢</目>
            <TH>操作</目>
        </ TR>
        <TR>
            <TD> 01 </ TD>
            <TD> NIO </ TD>
            <TD>女</ TD>
            <TD> 10 </ TD>
            <TD>
                <ボタンクラス = " 編集" >编辑</ボタン>
                <ボタンクラス = " 削除" >删除</ボタン>
            </ TD>
        </ TR>
        <TR>
            <TD> 02 </ TD>
            <TD>バブル</ TD>
            <TD>男</ TD>
            <TD> 16 </ TD>
            <TD>
                <ボタンクラス = " 編集" >编辑</ボタン>
                <ボタンクラス = " 削除" >删除</ボタン>
            </ TD>
        </ TR>
        <TR>
            <TD> 03 </ TD>
            <TD>ヘクタール</ TD>
            <TD>男</ TD>
            <TD> 17 </ TD>
            <TD>
                <ボタンクラス = " 編集" >编辑</ボタン>
                <ボタンクラス = " 削除" >删除</ボタン>
            </ TD>
        </ TR>
    </ TABLE>
    <スクリプトタイプ= " テキスト/ javascriptの" >
         / *
            deleteRowを(行番号):行を削除
            rowIndexに:行数の現在値を取得します。
        * / 
        VAR insertTr = document.querySelector(' .insertTr ' );
        VAR deleteBtn = document.querySelector(' .delete ' );
        VAR tableEle = document.querySelector(' テーブル' )。
        / * 插入* / 
        insertTr.addEventListener(' クリック' 、機能(){
            tableEle.insertRow(tableEle.rows.length)。/ * 插入空行* / 
            はconsole.log(tableEle.rows [ 1 ])
             のためのVAR iが= 0 ; I <tableEle.rows [ 1 ] .cells.length; I ++ ){
                tableEle.rows [tableEle.rows.length - 1 ] .insertCell(I)。
            }
            tableEle.rows [tableEle.rows.length - 1 ] .cells [I- 1 ] .innerHTML = `
                 <ボタンクラス = " 編集" >编辑</ボタン>
                <ボタンクラス = " 削除" >删除</ボタン>
            `
        })
        / * +削除する編集機能* / 
        tableEle.addEventListenerを(' クリック' 、機能(){
             VARの currentRowの= イベント.target.parentNode.parentNode;
             / * 編集* / 
            IFイベント .target.className == " 編集" ){
                 / *
                    コードを編集します
                    テーブル<TD>または<TH>要素内のすべてのセルのセットを返します。
                * / 
                場合(!のcurrentRow.cells [ 0 {] .isContentEditable)
                     のためにvarが iは= 0 ; I <currentRow.cells.length- 1 I ++; {)
                        currentRow.cells [I] .contentEditableは = イベント .target.textContent = " 保存" ;
                        currentRow.cells [ 0 ] .focus()。
                    }
                } {
                     ためには、VaRは iが= 0 ; I <currentRow.cells.length- 1 ; I ++ ){
                        currentRow.cells [i]は.contentEditable = ;
                        イベント .target.textContent = " 编辑" 
                    }
                }
            }
            / * 削除* / 
            IFイベント .target.className == " 削除" ){
                 VAR質問を=(確認して' 銀行削除するOK?' );
                 IF (問){
                     VARのインデックスを;
                     / *
                        すべての行のコレクションライン(のTableRowオブジェクト)テーブルの配列を返します
                    * / 
                    のためにVAR iが= 0 ; I <tableEle.rows.lengthは、iが++ ){
                         場合(tableEle.rows [I] == currentRowの){
                            インデックス = I;
                            console.log(インデックス)。
                            休憩;
                        }
                    }
                    / *
                        操作テーブル:のinsertRow()、deleteRowを()、insertCell()、deleteCell()
                    * /
                    tableEle.deleteRow(インデックス)。
                }
            }
        })
    </ SCRIPT>
</ BODY>
</ HTML>

おすすめ

転載: www.cnblogs.com/jianxian/p/12088004.html