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 が値を返してフォームを動的に生成し、データを送信する仕組みの詳細な説明

推薦する

シンプルな計算機を実装する JavaScript コード

この記事では、参考までに、簡単な計算機を実装するためのJavaScriptの具体的なコードを紹介しま...

React-vscode で jsx 構文を使用する際の問題と解決策

問題の説明プラグインをインストールした後、ES7 React/Redux/GraphQL/React...

Vue-cliはプロジェクトを作成し、プロジェクト構造を分析します

目次1. ディレクトリを入力してプロジェクトを作成する2. 必要な設定項目を選択します2.1 Vue...

リアルタイムコンピューティングフレームワークFlinkクラスタの構築と動作メカニズムについての簡単な説明

目次1. Flinkの概要1.1 基本的な紹介1.2 アプリケーションシナリオ2. 環境の展開2.1...

IDEA で Linux コマンドを使用する方法

Windows システムと比較して、Linux システムは多数の豊富なコマンドライン ツールを提供し...

ウェブページでmp3またはフラッシュプレーヤーコードを再生する

コードをコピーコードは次のとおりです。 <オブジェクト id="player1&qu...

Linux でリモート サーバー ファイルの状態を表示する方法

以下のように表示されます。 test コマンドはファイルが存在するかどうかを判断します。 ssh u...

Hadoop 3.2.0 クラスターの構築に関する一般的な考慮事項

1つのポートの変更バージョン 3.2.0 では、ネームノード ページ ポートは 9870、データノー...

Linuxホスト名変更コマンドの詳しい説明

Linux ホスト名変更コマンド1. ホスト名を一時的に変更するだけの場合は、hostname コマ...

docker ログが取得できない問題の解決方法

毎日サービスをチェックしているときに、portainer からコンテナ ログを確認しようとしたところ...

ウェブページ経由で jar パッケージを Nexus にアップロードする方法

Maven を使用してプロジェクトを管理する場合、jar パッケージをプライベート ウェアハウスにア...

Linuxパフォーマンス監視コマンドの簡単な紹介

システムでさまざまな IO ボトルネック、メモリ使用量の増加、CPU 使用率の増加などの問題が発生し...

MySQL の遅いクエリとクエリ再構築方法の記録

序文スロークエリとは何か、またスロークエリを最適化するにはどうすればよいか。以下では、これら 2 つ...

MySQL SHOW STATUSステートメントの使用

MySQL のパフォーマンス調整とサービス ステータスの監視を行うには、MySQL の現在の実行状態...

実行中の Docker コンテナにボリュームを動的に追加する方法

以前、Docker コンテナの起動後にボリュームをマウントできるかどうか尋ねられたことがあります。m...