jQueryのは、最初の以外のすべてのテーブルの行を削除します

StackOverflow https://stackoverflow.com/questions/370013

  •  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、それをスライスして、リストの選択された要素を削除

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top