JQuery在数组中搜索字符串

时间:2013-11-02 17:14:16

标签: jquery

通过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(' ');

为了使包含我的数组中的单词的所有行都可见,我该怎么做?

2 个答案:

答案 0 :(得分:0)

一种方法是使用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();

答案 1 :(得分: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/