我正在使用以下代码对表进行实时搜索。这适用于一列中的匹配项,但我希望它匹配多个列。
例如,如果我有一个名为“某些产品”的产品和一个名为“某些类别”的类别,则搜索:
“产品猫”
将匹配两列。我知道数据表可以做到这一点(请参见屏幕截图),但是希望尽可能少地依赖:
jQuery代码:
$("#order_search").keyup(function () {
var value = this.value.toLowerCase().trim();
$("table tr").each(function (index) {
if (!index) return;
$(this).find("td").each(function () {
var id = $(this).text().toLowerCase().trim();
var not_found = (id.indexOf(value) == -1);
$(this).closest('tr').toggle(!not_found);
return not_found;
});
});
});
这是桌子
<th>Part</th>
<th>Category</th>
<th>Quantity (Stock)</th>
<th>Date Ordered</th>
<th>Date Required (Days)</th>
<th>Date Completed</th>
<th>Update</th>
谢谢!
答案 0 :(得分:0)
我认为切换是这里的关键。
我建议采用一种更简单的方法,该方法不需要对现有数据进行任何修改,也不需要支持多个用空格分隔的搜索词,例如:
$("#order_search").on('keyup', function () {
var value = $.trim($(this).val());
var vx = new RegExp('(' + value.split(" ").join(".*") + ')', "ig");
$("table tr").each(function () {
$(this).toggle(vx.test(String($(this).children().text())));
});
});