我有一个选择,我想根据数据属性过滤表行。
E.g:
<select>
<option value="0">View all</option>
<option value="1">Foo1</option>
<option value="2">Foo2</option>
<option value="3">Foo3</option>
</select>
<table>
<tr data-foo="1">
<td>Foo</td>
<td>Foo</td>
</tr>
<tr data-foo="2">
<td>Foo2</td>
<td>Foo2</td>
</tr>
<tr data-foo="1">
<td>Foo</td>
<td>Foo</td>
</tr>
<tr data-foo="2">
<td>Foo2</td>
<td>Foo2</td>
</tr>
<tr data-foo="3">
<td>Foo3</td>
<td>Foo3</td>
</tr>
</table>
我有这个,但filter
无效,不显示任何行。
$("select").change(function() {
$("tr").hide().filter(function(index){
return ($(this).data("foo") == this.value || this.value == 0);
}).show();
});
答案 0 :(得分:7)
this
函数中的 filter
不会引用您的select元素。
$("select").change(function() {
var val = this.value;
$("tr").hide().filter(function(index){
return ($(this).data("foo") == val || val == 0);
}).show();
});