我正在修改一个朋友的网页的jquery过滤器,他正在使用w3schools示例中的这个过滤器(https://www.w3schools.com/Bootstrap/bootstrap_filters.asp),但在这种情况下,jquery循环所有列,我只需要过滤表中的一个特定列。如何"忽略"其他列并通过特定列筛选行?
下面是一个jsfiddle示例(https://jsfiddle.net/lucas2500/w7atphe3/),我想按第一列(Firstname)过滤所有行。
$(document).ready(function(){
$("#myInput").on("keyup", function() {
var value = $(this).val().toLowerCase();
$("#myTable tr").filter(function() {
$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
});
});
});
抱歉有语法错误。
应用筛选器时,它当前正在检查整行的.text()
:
$(this).text().toLowerCase().indexOf(value) > -1
其中CCD_ 2分别是CCD_。
您可以替换此部分以检查特定列,例如仅第一列:
$(this).find("td:eq(0)").text().toLowerCase().indexOf(value) > -1
给予:
$("#myInput").on("keyup", function() {
var value = $(this).val().toLowerCase();
$("#myTable tr").filter(function() {
$(this).toggle($(this).find("td:eq(0)").text().toLowerCase().indexOf(value) > -1)
});
});
还有其他方法可以做到这一点,但这与您的原始逻辑/代码非常接近。
更新的小提琴:https://jsfiddle.net/8owLdc2t/