jQueryを使用した行追加・削除

この記事を書いたチーム:frontier

はじめに

【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc.  詳細はこちらから>

HTMLJavaScriptで動的に操作できる、jQueryを使用してテーブルの行追加削除のサンプルコードを記述いたしました。基本はtableタグを使用しますが、今回はdivタグで書いています。

サンプルコード

HTMLコード

画面表示用のテーブルid=”table”とは別にid=”dummy-table”を作成しておきます。
このときid=”dummy-table”style=”display: none;”を設定して画面には見えないようにしておきます。

jQueryコード

現在のテーブルの総行数を取得して使用する場合は、$(“[id^=row-]”).length; で行数を取得できます。
$(“[id^=row-]”)id=”table”内の要素で「row-」に前方一致するidを探してくれます。
$(“#dummy-table”).clone(true);でid=”dummy-table”の要素を丸ごとvar newRowとしてコピーしています。
newRow内の要素はdummy-tableの要素のままになっているので、属性の名称等を変えていきます。

書き方1と書き方2で書き方は変えていますが、処理は同じことをしています。
.attr()では指定した属性の名称を変更する操作ができます。
書き方1ではnewRow内にあるid=dummy-row- を検索して、その中身のidnameを上書きしています。
id=dummy-row-という名称も変えなければいけないので、別でid書き換え操作を行っています。

書き方2ではこちらの↓1文を例とすると
$(“txb-” ,newRow).attr(“id”,”txb-” + (currentNo+1)); 
newRow内にあるid= txb-を検索して .attr() の第一引数で「変更したい属性」を指定し、第二引数で変更後の名称を指定しています。
そうすると、newRowid= txb-id= txb-4に変更されます。

それぞれ、ダミーの新規行に対して、idnameの属性を既存のテーブルの属性名称に合わせた後、$(“#table”).append(newRow);でテーブルに新規行を追加しています。
append()は挿入するという操作が行えて、指定したテーブルに対して自動に最終行に行を追加してくれます。

行削除については、指定したidに対してremove()を行うとその要素は削除されるので、hidden項目等で対象行のNoなどを持っておくと削除対象行をテーブルから削除する操作が行えます。

最後に

jQueryを使用して、配置されたボタンをクリックでテーブルに行を追加、削除する処理がありましたら、参考にしてくださればと思います。

【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>

Smallitのサービス