jQueryのは、最初の以外のすべてのテーブルの行を削除します
-
21-08-2019 - |
質問
のjQueryを使用して、どのように私は、最初のを除いてテーブル内のすべての行を削除しますか?これは、インデックスセレクタを使用しての私の最初の試みです。私が正しく例を理解している場合、以下の作業をする必要があります:
$(some table selector).remove("tr:gt(0)");
I「はそのような行の要素のインデックスがゼロより大きいすべての 『のTR』要素(行)を削除し、jQueryオブジェクトにいくつかのテーブルをラップ」として読み取らあろう。実際に、それはエラーを生成せずに実行するが、テーブルからすべての行を削除しない。
私は何をしないのです、と私はこれをどのように解決するのですか?もちろん、私はストレートのJavaScriptを使用することができますが、私はこの使用してjQueryのを解決したいjQueryを使ってとても楽しんでいます。
解決
この作業をする必要があります:
$(document).ready(function() {
$("someTableSelector").find("tr:gt(0)").remove();
});
他のヒント
私は、これは意図与えられ、より読みやすいと思います:
$('someTableSelector').children( 'tr:not(:first)' ).remove();
子を使用すると、最初の行が検索の深さを制限することによってテーブルを含む場合の世話をする。
あなたはTBODY要素を持っていた場合、あなたはこれを行うことができます:
$("someTableSelector > tbody:last").children().remove();
あなたはTHEADやTFOOT要素を持っている場合は、あなたが別の何かをする必要があります。
これを達成するもう一つの方法は、あなたのテーブル内のthead要素とTBODY要素を持つjQueryのの空の()関数を使用しています。
テーブルの例:
<table id="tableId">
<thead>
<tr><th>Col1</th><th>Col2</th></tr>
</thead>
<tbody>
<tr><td>some</td><td>content</td></tr>
<tr><td>to be</td><td>removed</td></tr>
</tbody>
</table>
とjQueryコマンドます:
$("#tableId > tbody").empty();
これはあなたのテーブルのTBODY要素に含まれるすべての行を削除し、あなたのヘッダがあるべきTHEAD要素を維持します。あなたがテーブルのコンテンツのみをリフレッシュしたいときに便利です。
それは私だったら、私はおそらく、単一のセレクタにそれを煮詰めると思います:
$('someTableSelector tr:not(:first)').remove();
あなたの選択はあなたの削除の内側にある必要はありません。
これは、次のようになります。
$("#tableID tr:gt(0)").remove();
TABLEIDのIDとテーブルに最初の以外のすべての行を選択し、DOMからそれらを削除することを意味します。
のID tbl
有するテーブルを考慮してくださいjQueryのコードは次のようになります。
$('#tbl tr:not(:first)').remove();
$('#table tr').slice(1).remove();
私はちょうどそれをここに入れて、その「スライス」すべての他のアプローチよりも高速である出くわす覚えています。
以下のコードを使用し、(ヘッダを除く)最初のものを除いて、すべての行を削除するには、次の
$("#dataTable tr:gt(1)").remove();
-sorryこれは非常に返事が遅れています。
iは任意の行(及び反復を介して他のすべての行)を削除することが見出された最も簡単な方法は、本である
$( '#のROWID'、 '#のTABLEID')(削除);ます。
残りは簡単です。
$("#p-items").find( 'tr.row-items' ).remove();
機能に包まれます:
function remove_rows(tablename) {
$(tablename).find("tr:gt(0)").remove();
}
それを呼び出します:
remove_rows('#table1');
remove_rows('#table2');
これは完璧に動作します。
$("#myTable tbody").children( 'tr:not(:first)' ).html("");
これは、私の場合には、次のように働いていたし、細かい作業
$("#compositeTable").find("tr:gt(1)").remove();
最も簡単な方法:
$("#mytable").find($("tr")).slice(1).remove()
テーブル
を参照-first
要素のリストを-get、それをスライスして、リストの選択された要素を削除