さっそく、コードを直接投稿します。具体的なコードは次のとおりです。 <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 行目の 3 行目、 4 行目の 行削除メソッド 関数 del(obj) { var trId = obj.parentNode.parentNode.id; var trObj = document.getElementById(trId); document.getElementById("tb").removeChild(trObj); } 削除メソッドにパラメータが渡されます。行追加メソッドでは、削除メソッド del に this パラメータが渡されていることがわかります。ページ コード内の this は、現在の HTML 要素、つまり this が配置されている <input> フィールドを参照します。 最初の行、 2 行目の 3 行目の 欠陥 上記のコードは基本的に、テーブル内の行を動的に追加および削除する機能を実装していますが、主に次の 2 つの点に欠陥があります。 1 行を追加する前と後で表の幅が変わる 前面を追加 行を追加した後 行を追加すると、表の列が広くなります 2 ブラウザで開いたデフォルトページの中国語のテキストが文字化けする 正常に表示するには、ページのエンコード形式を変更するために文字エンコードを設定する必要があります。 |
<<: スタートアップ企業が丹念に作り上げた優れたウェブデザイン17選
>>: Vue が値を返してフォームを動的に生成し、データを送信する仕組みの詳細な説明
この記事では、参考までに、簡単な計算機を実装するためのJavaScriptの具体的なコードを紹介しま...
問題の説明プラグインをインストールした後、ES7 React/Redux/GraphQL/React...
目次1. ディレクトリを入力してプロジェクトを作成する2. 必要な設定項目を選択します2.1 Vue...
目次1. Flinkの概要1.1 基本的な紹介1.2 アプリケーションシナリオ2. 環境の展開2.1...
Windows システムと比較して、Linux システムは多数の豊富なコマンドライン ツールを提供し...
コードをコピーコードは次のとおりです。 <オブジェクト id="player1&qu...
以下のように表示されます。 test コマンドはファイルが存在するかどうかを判断します。 ssh u...
1つのポートの変更バージョン 3.2.0 では、ネームノード ページ ポートは 9870、データノー...
Linux ホスト名変更コマンド1. ホスト名を一時的に変更するだけの場合は、hostname コマ...
毎日サービスをチェックしているときに、portainer からコンテナ ログを確認しようとしたところ...
Maven を使用してプロジェクトを管理する場合、jar パッケージをプライベート ウェアハウスにア...
システムでさまざまな IO ボトルネック、メモリ使用量の増加、CPU 使用率の増加などの問題が発生し...
序文スロークエリとは何か、またスロークエリを最適化するにはどうすればよいか。以下では、これら 2 つ...
MySQL のパフォーマンス調整とサービス ステータスの監視を行うには、MySQL の現在の実行状態...
以前、Docker コンテナの起動後にボリュームをマウントできるかどうか尋ねられたことがあります。m...