我创建了一个带有 HTML 的表,并希望集成一个可以搜索 4 列(名称、名称 2、姓氏、姓氏 2)的搜索框。我试图找到 1 列,但在写下一列后没有显示任何内容
例如我想:
find name and last_name
find name2 and last_name2
find last_name and name2
find name and last_name and name2
换句话说,无论顺序如何,但在按下“SPACE”键后都没有显示结果。
这是我的问题:
<input type="text" id="filter" />
<table id="table">
<tr>
<td>foo</td>
<td>1</td>
</tr>
<tr>
<td>bar</td>
<td>2</td>
</tr>
<tr>
<td>some</td>
<td>3</td>
</tr>
<tr>
<td>other</td>
<td>4</td>
</tr>
</table>
这是我的Javascript:
// Function
function filterTable(value) {
if (value != "") {
$("#table tbody>tr").hide();
$("#table td:contains-ci('" + value + "')").parent("tr").show();
} else {
$("#table tbody>tr").show();
}
}
// jQuery expression for case-insensitive filter
$.extend($.expr[":"], {
"contains-ci": function (elem, i, match, array) {
return (elem.textContent || elem.innerText || $(elem).text() || "").toLowerCase().indexOf((match[3] || "").toLowerCase()) >= 0;
}
});
// Event listener
$('#filter').on('keyup', function () {
filterTable($(this).val());
});
请问有人知道如何解决这个问题吗?