2011-03-15 7 views
1

の範囲を削除します。私はafter_dynamic_rows行の前に自動的に生成された行(検索結果)を挿入し、jQueryのはのは、私はこれらの行を持つテーブルがあるとしましょう行

<table> 
    <tr id="before_dynamic_rows"></tr> 
    <tr id="after_dynamic_rows"></tr> 
</table> 

をjQueryのを使用します。どのくらいの範囲の行を削除することができますか?つまり、推測すると、IDがbefore_dynamic_rowsの行とafter_dynamic_rowsの行の間の行は削除されますか? (挿入した後、削除して別のものを挿入できるように)

var response = ajax.responseText; 
$('#after_dynamic_rows').before(response); 

これは、新しい行を挿入する方法です。最初の答えを考えてみましょう:どのように応答テキストがどんなものでもクラスを割り当てることができますか?

+0

重複http://stackoverflow.com/questions/1059625/using-jquery-how-do-i-select -a-range-of-rows – mplungjan

+0

追加する応答は何ですか?私はあなたの応答は、サーバー上で生成されたHTMLだと思いますか?その場合は、追加しているHTMLを生成しているサーバーコードを変更し、クライアントに返す前にクラス情報を追加する必要があります。 – NerdFury

答えて

2

この回答を削除すべき行だけが要素と#after_dynamic_rows#before_dynamic_rowsの間にあるこれらの行であるという考えを持つ質問の文字通りの解釈に基づいています。

で作業バージョンを参照してください:#after_dynamic_rowsが最後の行であれば、あなただけ行うことができますhttp://jsfiddle.net/7wBzd/

var $rows = $("tr"); 
$("tr:lt("+ $rows.index($("#after_dynamic_rows")) +"):gt("+ $rows.index($("#before_dynamic_rows")) +")").remove(); 
+0

は動作しません:( – arik

+0

今すぐhttp://jsfiddle.net/7wBzd/ – jessegavin

+0

パーフェクト! – arik

2

私はそれらを簡単に選択できるように、追加された行にクラスを割り当てますが、trの子をすべて選択し、 'not'メソッドを使用して保持したい2つを削除することができます。

$("table tr").not("#before_dynamic_rows").not("#after_dynamic_rows").remove(); 
+0

上記で編集したように、どのようにこれらにクラスを割り当てることができますか? – arik

2
$("table tr:gt(0)").not("#after_dynamic_rows").remove(); 

Try it out here.

注:

$("table tr:gt(0)").not(":last").remove(); 

か:

$("table tr:gt(0):not(:last)").remove(); 

...と#before_dynamic_rows前の行がある場合、単に実行しますの

$("table tr:not(#before_dynamic_rows, #after_dynamic_rows)").remove(); 
+0

あなたのものは私のものよりもはるかに美しいですが、 '#before_dynamic_rows'の前に行がある場合はどうすればいいですか? – jessegavin

+0

@jessegavin - 良い点!編集しました – karim79

+0

Urgh - 無限の可能性があります。 – karim79

関連する問題