在jquery筛选器中仅筛选特定列



我正在修改一个朋友的网页的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/

最新更新