さっそく、コードを直接投稿します。具体的なコードは次のとおりです。 <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 が値を返してフォームを動的に生成し、データを送信する仕組みの詳細な説明
Ansible を使用する学生は、以下に示すように、Ansible が特定のフォルダーまたはファイル...
デフォルトでは、テーブルの幅と高さはコンテンツに応じて自動的に調整されます。テーブルの幅と高さを手動...
たとえば、現在のパスが /var/log で、/usr ディレクトリに移動する場合は、次のコマンドを...
Webkit スクロールバー スタイルのリセット1. スクロールバーには、スクロールバー ボタンとト...
適用シナリオ: シールのさまざまな状態に応じて、さまざまな状態のシールの数をカウントする必要がありま...
目次1. プロトタイプモード例1例2例3 2. オブザーバーパターン1. プロトタイプモードプロトタ...
目次序文インストールと設定1. Echartsをインストールする2. Echartsをグローバルに導...
MySQL の内部関数instrを使用すると、従来の like クエリ メソッドを置き換えることがで...
時には、Web ページに掲載されているコンテンツが悪意のある人物に盗用されるのを望まないため、Web...
概要ボリュームは、さまざまなストレージ リソースを抽象化および仮想化したものです。ストレージ リソー...
ページ、特にホームページを作成するときは、通常、Web サイト全体の他のメイン ページにリンクできる...
目次序文グローバルロックテーブルロックテーブルロックメタデータ ロック (MDL ロック)要約する参...
目次1. 準備2. 展開プロセス3. アクセステストHalo は、ブログに慣れている学生に追加のオプ...
私は CentOS に実装された LDAP ユーザー管理を使用しています。これはインターネット上のほ...
フロントエンド開発者の必須科目であるCSS3は、多くの基本的なアニメーション効果を実現するのに役立ち...