HTML_PowerNode Java アカデミーでテーブルを動的に追加する

HTML_PowerNode Java アカデミーでテーブルを動的に追加する

さっそく、コードを直接投稿します。具体的なコードは次のとおりです。

<html>  
    <head><title>表</title></head>  
    <本文>  
        <表の境界線="1">  
            <頭>  
                <tr>  
                    <td>名</td>  
                    <td>姓</td>  
                    <td> </td>  
                </tr>  
            <頭>  
            <tbodyid="tb">  
                <tr id="1st">  
                    <td>张</td>  
                    <td>3</td>  
                    <td><input type="button" value="追加" onclick="add()">   
                    <input type="button" value="Del" onclick="del(this)"></td>  
                </tr>  
            </tbody>  
        </テーブル>  
    </本文>  
</html>  
<スクリプト>  
    関数add(){  
        var trObj = document.createElement("tr");  
        trObj.id = 新しい日付()。getTime();  
        trObj.innerHTML = "<td><input name='firstName'/></td><td><input name='lastName'/></td><td><input type='button' value='Add' onclick='add()'> <input type='button' value='Del' onclick='del(this)'></td>";  
        document.getElementById("tb").appendChild(trObj);  
    }  
    関数 del(obj) {  
        var trId = obj.parentNode.parentNode.id;  
        var trObj = document.getElementById(trId);  
        document.getElementById("tb").removeChild(trObj);  
    }  
</スクリプト>

上記のコードでは、まず本体にテーブルを構築します。後続の操作を容易にするために、テーブルに thead タグと tbody タグを追加します。 thead タグはテーブル ヘッダーを示し、 tbody タグはテーブル本体を示します。

例の表には 3 つの列があります。最初の列は名、2 番目の列は姓、3 番目の列は操作列です。

操作列には 2 つの操作が含まれます。1 つはテーブルに行を追加する操作で、もう 1 つは現在の行を削除する操作です。行の追加と削除の操作は、それぞれ 2 つのボタンにバインドされています。ボタンをクリックすると、行の追加と削除の対応する操作がトリガーされます。

行の追加方法

関数add(){  
        var trObj = document.createElement("tr");  
        trObj.id = 新しい日付()。getTime();  
        trObj.innerHTML = "<td><input name='firstName'/></td><td><input name='lastName'/></td><td><input type='button' value='Add' onclick='add()'> <input type='button' value='Del' onclick='del(this)'></td>";  
        document.getElementById("tb").appendChild(trObj);  
    }

最初の行は tr 要素を作成します。つまり、テーブル行を作成します。

2 行目のtrObj.id = new Date().getTime();この行に id 属性を追加し、現在のシステムのミリ秒を取得して属性に値を割り当てます。これは主に削除時に必要です。

3 行目、 trObj.innerHTML = "<td><input name='firstName'/></td><td><input name='lastName'/></td><td><input type='button' value='Add' onclick='add()'>

<input type='button' value='Del' onclick='del(this)'></td> "; テーブルの行に値を割り当て、innerHTMML属性を使用して、追加する行コンテンツである<tr>タグと</tr>タグの間のHTMLコードコンテンツを設定します。

4 行目のdocument.getElementById("tb").appendChild(trObj);作成されたテーブル行をテーブル本体に追加します。

行削除メソッド

関数 del(obj) {  
    var trId = obj.parentNode.parentNode.id;  
    var trObj = document.getElementById(trId);  
    document.getElementById("tb").removeChild(trObj);  
}

削除メソッドにパラメータが渡されます。行追加メソッドでは、削除メソッド del に this パラメータが渡されていることがわかります。ページ コード内の this は、現在の HTML 要素、つまり this が配置されている <input> フィールドを参照します。

最初の行、 var trId = obj.parentNode.parentNode.id ; は、現在の要素の親ノードの親ノードの ID、つまり削除する行の ID を取得します。

2 行目のvar trObj = document.getElementById(trId);削除する行要素を取得します。

3 行目のdocument.getElementById("tb").removeChild(trObj);テーブル本体の行を削除します。

欠陥

上記のコードは基本的に、テーブル内の行を動的に追加および削除する機能を実装していますが、主に次の 2 つの点に欠陥があります。

1 行を追加する前と後で表の幅が変わる

前面を追加

行を追加した後

行を追加すると、表の列が広くなります

2 ブラウザで開いたデフォルトページの中国語のテキストが文字化けする

正常に表示するには、ページのエンコード形式を変更するために文字エンコードを設定する必要があります。

<<:  スタートアップ企業が丹念に作り上げた優れたウェブデザイン17選

>>:  Vue が値を返してフォームを動的に生成し、データを送信する仕組みの詳細な説明

推薦する

Ansibleを使用してディレクトリ内のすべてのコンテンツを削除する方法

Ansible を使用する学生は、以下に示すように、Ansible が特定のフォルダーまたはファイル...

HTML テーブルタグチュートリアル (3): 幅と高さの属性 WIDTH、HEIGHT

デフォルトでは、テーブルの幅と高さはコンテンツに応じて自動的に調整されます。テーブルの幅と高さを手動...

Linuxで相対パスを表現する方法

たとえば、現在のパスが /var/log で、/usr ディレクトリに移動する場合は、次のコマンドを...

CSSスクロールバースタイル設定の実装

Webkit スクロールバー スタイルのリセット1. スクロールバーには、スクロールバー ボタンとト...

SQLで同じフィールドの異なる値のデータ統計を実行する

適用シナリオ: シールのさまざまな状態に応じて、さまざまな状態のシールの数をカウントする必要がありま...

Javascript デザインパターン プロトタイプ モードの詳細

目次1. プロトタイプモード例1例2例3 2. オブザーバーパターン1. プロトタイプモードプロトタ...

Echart Bar の 2 列チャート スタイルの最も完全な詳細な説明

目次序文インストールと設定1. Echartsをインストールする2. Echartsをグローバルに導...

MySQL の instr を使用したファジー クエリ メソッドの紹介

MySQL の内部関数instrを使用すると、従来の like クエリ メソッドを置き換えることがで...

HTML ページでコンテンツの選択、コピー、右クリックを防止する方法の詳細な説明

時には、Web ページに掲載されているコンテンツが悪意のある人物に盗用されるのを望まないため、Web...

Kubernetes オブジェクトボリュームの詳細な使用方法

概要ボリュームは、さまざまなストレージ リソースを抽象化および仮想化したものです。ストレージ リソー...

スライド効果を実現するためのネイティブJavaScript

ページ、特にホームページを作成するときは、通常、Web サイト全体の他のメイン ページにリンクできる...

MySQL グローバルロックとテーブルレベルロックの具体的な使用法

目次序文グローバルロックテーブルロックテーブルロックメタデータ ロック (MDL ロック)要約する参...

Dockerを使用してブログサイトを素早く構築する方法の詳細な説明

目次1. 準備2. 展開プロセス3. アクセステストHalo は、ブログに慣れている学生に追加のオプ...

LDAP ユーザー認証を使用するように Linux を構成する方法

私は CentOS に実装された LDAP ユーザー管理を使用しています。これはインターネット上のほ...

簡単な手順で純粋な CSS3 で 3D 反転効果を実現

フロントエンド開発者の必須科目であるCSS3は、多くの基本的なアニメーション効果を実現するのに役立ち...