2011-06-22 5 views
3

jQuery DataTablesの列を列の値に基づいて検索する方法はありますか?たとえば、列1に「foo」の値を、列2に「bar」の値を含む行を特定できますか?どの列にこれらの値が含まれているかをプログラムで確認したいと思います。値と行インデックスを結びつける別々のデータ構造を保つだけのベスト・ソリューションですか?私は与えられた値を含む列を持つテーブル行を削除したいと思います。jQuery DataTablesを使用して列の値に基づいて行を取得するにはどうすればよいですか?

私はDataTables 1.8.0とjQuery 1.5.1を使用しています。

答えて

6

私は行をfnGetData、ループを使用してデータを取得し、$ .inArrayを使用します。

function getRow(table_id, arg1, arg2) { 
    var oTable = $('#' + table_id).dataTable(), 
     data = oTable.fnGetData(), 
     row, i, l = data.length; 

    for (i = 0; i < l; i++) { 
     row = data[i]; 

     // columns to search are hard-coded, but you could easily pass this in as well 
     if ($.inArray(arg1, row) == 0 && $.inArray(arg2, row) == 1) { 
      return $('#' + table_id + ' tr').eq(i); 
     } 
    } 
    return false; 
} 

$row = getRow('table_id', 'foo', 'bar'); 

注:未テスト

+0

AWESOME !!!! :-) – Patricia

2

は、このセレクタを使用してみてください:

$("tr td:nth-child(2):contains('value')").siblings(":contains('test')") 

は、このバイオリンを見てみましょう:

http://jsfiddle.net/B4wMp/8/

のDataTableは単なる古いHTMLテーブルとしてレンダリングされます。

+0

ニースと簡潔な、とき 'contains'が部分値にtrueを返しますけれどもあなたはそれを望んでいません - あなたは '新しい'を求めてきたときに 'ニューヨークのために真を返す。特定の列をターゲットにするには、 '... siblings.eq(column_n)...'を追加する必要があります。最初に選択したものを除外した新しいインデックスに基づいて配列から正しいものを選択します素子。 – glortho

関連する問題