我已经在SO here的示例中设置了一个基本表格,其中我添加了列标题。
有人可以提出如何修复表格过滤器的建议,这样它就不会隐藏列标题吗?这是我一直在测试的jsfiddle代码。
的Javascript
var $rows = $('#table tr');
$('#search').keyup(function() {
var val = '^(?=.*\\b' + $.trim($(this).val()).split(/\s+/).join('\\b)(?=.*\\b') + ').*$',
reg = RegExp(val, 'i'),
text;
$rows.show().filter(function() {
text = $(this).text().replace(/\s+/g, ' ');
return !reg.test(text);
}).hide();
});
搜索示例:如果您在搜索中键入apple,它会隐藏标题1和标题2.但是,我更喜欢在输入搜索后保留标题1和标题2。
答案 0 :(得分:3)
我的建议:在标题中添加一个类,并将其从过滤结果中排除:
http://jsfiddle.net/7BUmG/1161/
<input type="text" id="search" placeholder="Type to search">
<table id="table">
<tr class="header">
<th>Title 1</th>
<th>Title 2</th>
</tr>
<tr>
<td>Apple</td>
<td>Green</td>
</tr>
<tr>
<td>Grapes</td>
<td>Green</td>
</tr>
<tr>
<td>Orange</td>
<td>Orange</td>
</tr>
</table>
var $rows = $('#table tr[class!="header"]');
$('#search').keyup(function() {
var val = '^(?=.*\\b' + $.trim($(this).val()).split(/\s+/).join('\\b)(?=.*\\b') + ').*$',
reg = RegExp(val, 'i'),
text;
$rows.show().filter(function() {
text = $(this).text().replace(/\s+/g, ' ');
return !reg.test(text);
}).hide();
});
答案 1 :(得分:1)
使用var $rows = $('#table tbody tr');