我正在为朋友的网页修改一个jquery过滤器,他正在使用w3schools示例(https://www.w3schools.com/Bootstrap/bootstrap_filters.asp)中的该过滤器,但是在这种情况下jquery循环了所有列,我只需要过滤一个表的特定列。我如何“忽略”其他列并通过特定列过滤行?
这是一个jsfiddle示例(https://jsfiddle.net/lucas2500/w7atphe3/),我想按第一列(名字)过滤所有行。
$(document).ready(function(){
$("#myInput").on("keyup", function() {
var value = $(this).val().toLowerCase();
$("#myTable tr").filter(function() {
$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
});
});
});
很抱歉出现语法错误。
答案 0 :(得分:0)
应用过滤器时,它当前正在检查整行的.text()
:
$(this).text().toLowerCase().indexOf(value) > -1
其中this
是每个tr
。
您可以替换此部分以检查特定列,例如仅检查第一列:
$(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)
});
});
还有其他方法可以执行此操作,但这与您的原始逻辑/代码很接近。