0

textfield (id="preset_searchfield") を介して、jquery でテーブルを検索できます。検索テキストを含む行のみが表示されます。

    $("#tab_body tr").hide();
    $("#tab_body tr td:contains('" + $("#preset_searchfield").val() + "')").each(function(){
        $(this).parent().show();
    });

これは機能しています。今度は、スペースで区切られた複数の単語を検索したいと思います。したがって、検索文字列を次のように分割します。

    var searchString = $("#preset_searchfield").val();
    var searchArray = searchString.split(' ');

配列の単語を含むすべての行を表示するにはどうすればよいですか?

4

2 に答える 2

0

1つの方法は使用jQuery.filter()方法です

/* more efficient to loop over each row, and look at TD's within row*/
$('#tab_body tr').filter(function(){
   var isMatch=false, $cells=$(this).children();
   $.each(searchArray, function(i, searchStr){
      /* check if any of cells contain this search string*/
      if( $cells.filter(':contains('+searchStr+')').length){
           isMatch=true;
           /* stop looking at other values in array, found a match*/
          return false;
      }
   })
  return isMatch;
}).show();
于 2013-11-02T17:24:48.897 に答える
0

この方法でもできます

var searchString = $("#preset_searchfield").val();
var searchArray = searchString.split(' ');

for (x in searchArray) {
    $('#tab_body tr:contains(' + searchArray[x] + ')').hide();
}

Jsfiddle http://jsfiddle.net/jqwm8/

于 2013-11-02T17:32:41.900 に答える