JQueryを使用して、最初のテーブル以外のテーブル内のすべての行を削除する方法を教えてください。これが私の最初のインデックスセレクター使用の試みです。例を正しく理解すれば、次のようになります。
$(some table selector).remove("tr:gt(0)");
私は「jQueryオブジェクトでテーブルをラップしてから、そのような行の要素インデックスが0より大きい 'tr'要素(行)をすべて削除する」と読みました。実際には、エラーを生成せずに実行されますが、テーブルから行を削除することはありません。
何が足りないのでしょう、そしてどうすればこれを修正できますか?もちろん、私はストレートの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要素がある場合は、別のことをする必要があります。
これを実現するもう1つの方法は、jQueryのempty()関数をテーブル内のthead要素とtbody要素と共に使用することです。
テーブルの例:
<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();
これは完璧に動作します
$("#myTable tbody").children( 'tr:not(:first)' ).html("");
$( "#p-items")。find( 'tr.row-items').remove();
これは私の場合は次のように動作し、問題なく動作しました。
$("#compositeTable").find("tr:gt(1)").remove();
関数に包まれて:
function remove_rows(tablename) {
$(tablename).find("tr:gt(0)").remove();
}
それを呼び出します:
remove_rows('#table1');
remove_rows('#table2');
- ごめんなさい。
私が見つけた最も簡単な方法は任意の行(そして繰り返しを通して他のすべての行)を削除することです
$( '#rowid'、 '#tableid')。remove();
あとは簡単です。
最も簡単な方法:
$("#mytable").find($("tr")).slice(1).remove()
- テーブルの最初の参照
- 要素のリストを取得してスライスし、リストから選択した要素を削除します