jQuery で HTML テーブルの行を削除する - サンプルコード
jQuery で HTML テーブルの行を削除する
HTML コード
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>jQueryでテーブル行を削除</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function() {
$("#deleteButton").click(function() {
$("#myTable tr:gt(0)").remove();
});
});
</script>
</head>
<body>
<h1>テーブル行削除</h1>
<table id="myTable">
<tr>
<th>名前</th>
<th>年齢</th>
<th>住所</th>
</tr>
<tr>
<td>山田 太郎</td>
<td>30</td>
<td>東京都渋谷区</td>
</tr>
<tr>
<td>佐藤 花子</td>
<td>25</td>
<td>大阪府大阪市</td>
</tr>
<tr>
<td>鈴木 次郎</td>
<td>40</td>
<td>神奈川県横浜市</td>
</tr>
</table>
<button id="deleteButton">削除</button>
</body>
</html>
解説
-
$("#myTable tr:gt(0)").remove();
というコードは、myTable
IDを持つテーブル内のtr
要素のうち、1番目以降をすべて削除します。$("#myTable")
は、myTable
IDを持つテーブル要素を選択します。tr
は、テーブル行を表す要素です。:gt(0)
は、1番目以降の要素を選択するセレクタです。.remove()
メソッドは、選択された要素を削除します。
実行結果
このコードを実行すると、最初の行を残してすべての行が削除されます。
削除前
名前 | 年齢 | 住所 |
---|---|---|
山田 太郎 | 30 | 東京都渋谷区 |
佐藤 花子 | 25 | 大阪府大阪市 |
鈴木 次郎 | 40 | 神奈川県横浜市 |
削除後
名前 | 年齢 | 住所 |
---|---|---|
山田 太郎 | 30 | 東京都渋谷区 |
- 最初の行以外の行を削除したい場合は、
:gt(n)
セレクタを使用できます。n
は、残したい行のインデックスです。例えば、最初の2行を残したい場合は、$("#myTable tr:gt(1)").remove();
とします。 - すべての行を削除したい場合は、
$("#myTable tr").remove();
とします。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>jQueryでテーブル行を削除</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function() {
$("#deleteButton").click(function() {
$("#myTable tr:gt(0)").remove();
});
});
</script>
</head>
<body>
<h1>テーブル行削除</h1>
<table id="myTable">
<tr>
<th>名前</th>
<th>年齢</th>
<th>住所</th>
</tr>
<tr>
<td>山田 太郎</td>
<td>30</td>
<td>東京都渋谷区</td>
</tr>
<tr>
<td>佐藤 花子</td>
<td>25</td>
<td>大阪府大阪市</td>
</tr>
<tr>
<td>鈴木 次郎</td>
<td>40</td>
<td>神奈川県横浜市</td>
</tr>
</table>
<button id="deleteButton">削除</button>
</body>
</html>
- HTML 部分
<table>
タグでテーブルを作成します。id="myTable"
をテーブル要素に設定することで、jQuery で簡単に操作できるようにします。id="deleteButton"
をボタン要素に設定することで、イベントハンドラを割り当てる準備をします。
- JavaScript 部分
$(document).ready(function() { ... });
は、DOM が完全にロードされたら実行される関数を定義します。$("#deleteButton").click(function() { ... });
は、deleteButton
ボタンがクリックされたときに実行されるイベントハンドラを定義します。
実行方法
- 上記のコードを HTML ファイル(
index.html
など)に保存します。 - Web ブラウザでその HTML ファイルを開きます。
- このコードは、jQuery 3.6.0 を使用しています。古いバージョンの jQuery を使用している場合は、バージョンに合ったコードに修正する必要があります。
- このコードは、ブラウザの互換性についてテストされていません。すべてのブラウザで正しく動作するとは限りません。
each() メソッドを使用する
この方法は、each()
メソッドを使用してテーブル内の各行をループし、条件に一致する行を削除します。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>jQueryでテーブル行を削除</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function() {
$("#deleteButton").click(function() {
$("#myTable tr").each(function(index) {
if (index > 0) {
$(this).remove();
}
});
});
});
</script>
</head>
<body>
<h1>テーブル行削除</h1>
<table id="myTable">
<tr>
<th>名前</th>
<th>年齢</th>
<th>住所</th>
</tr>
<tr>
<td>山田 太郎</td>
<td>30</td>
<td>東京都渋谷区</td>
</tr>
<tr>
<td>佐藤 花子</td>
<td>25</td>
<td>大阪府大阪市</td>
</tr>
<tr>
<td>鈴木 次郎</td>
<td>40</td>
<td>神奈川県横浜市</td>
</tr>
</table>
<button id="deleteButton">削除</button>
</body>
</html>
$("#myTable tr").each(function(index) { ... });
は、myTable
IDを持つテーブル内の各tr
要素をループします。index
パラメータは、ループ内の現在のインデックスを表します。this
キーワードは、ループ内の現在の要素を表します。
if (index > 0) { $(this).remove(); }
は、インデックスが 1 より大きい場合(つまり、最初の行ではない場合)、現在の行を削除します。
filter() メソッドを使用する
この方法は、filter()
メソッドを使用して条件に一致する行を選択し、remove()
メソッドで削除します。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>jQueryでテーブル行を削除</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function() {
$("#deleteButton").click(function() {
$("#myTable tr:gt(0)").remove();
});
});
</script>
</head>
<body>
<h1>テーブル行削除</h1>
<table id="myTable">
<tr>
<th>名前</th>
<th>年齢</th>
<th>住所</th>
</tr>
<tr>
<td>山田 太郎</td>
<td>30</td>
<td>東京都渋谷区</td>
</tr>
<tr>
<td>佐藤 花子</td>
<td>25</td>
<td>大阪府大阪市</td>
</tr>
<tr>
<td>鈴木 次郎</td>
<td>40</td>
<td>神奈川県横浜市</td>
</tr>
</table>
<button id="deleteButton">削除</button>
</body>
</html>
$("#myTable tr:gt(0)").remove();
は、myTable
IDを持つテーブル内のtr
要素のうち、1番目以降をすべて削除します。
特定の条件で削除する
上記の例では、最初の行を残してすべての行を削除していましたが、特定の条件で削除することもできます。例えば、特定の列の値に基づいて行を削除することができます。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>jQueryでテーブル行を削除</title>
<script src="https://code.jquery.com/jquery-3.6.
jquery jquery-selectors