2013-11-14 144 views
2

我正在使用jQuery搜索過濾器,它運行良好。不過,我也需要在輸入框中搜索和過濾。輸入框都是文本類型,我需要使用其他表格列中的文本。jQuery搜索過濾器 - 在輸入框中搜索

我已經創建了一個小提琴, http://jsfiddle.net/ktcle/Jf6q5/

因此,在這種提琴,如果我鍵入梅賽德斯那麼結果會顯示梅賽德斯

$("#searchInput").keyup(function() { 

var data = this.value.split(" "); 
var jo = $("#fbody").find("tr"); 
if (this.value == "") { 
    jo.show(); 
    return; 
} 

jo.hide(); 

jo.filter(function (i, v) { 
    var $t = $(this); 
    var matched = true; 
    for (var d = 0; d < data.length; ++d) { 
     if (data[d].match(/^\s*$/)) { 
      continue; 
     } 

     var regex = new RegExp(data[d].toLowerCase()); 
     if ($t.text().toLowerCase().replace("").match(regex) === null) { 
      matched = false; 
     } 
    } 
    return matched; 
}) 

.show(); 
}); 

任何幫助總是讚賞

回答

4

我編輯的腳本這小提琴:

http://jsfiddle.net/Jf6q5/14/

jo.filter(function (i, v) { 
    var $t = $(this); 
    var matched = true; 
    for (var d = 0; d < data.length; ++d) { 
     var value = ""; 
     $t.find("td").each(function(){ 
      var _td = $(this); 
      value += _td.text() + _td.find("input").val(); 
     }); 
     if (data[d].match(/^\s*$/)) { 
      continue; 
     } 

     var regex = new RegExp(data[d].toLowerCase()); 
     if (value.toLowerCase().replace("").match(regex) === null) { 
      matched = false; 
     } 
    } 
    return matched; 
}); 
+0

謝謝。你是明星 –