2

我有一个选择,我想用它来根据数据属性过滤表行。

例如:

<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();
});
4

1 回答 1

7

thisfilter函数中,不引用您的选择元素。

$("select").change(function() {
    var val = this.value;
    $("tr").hide().filter(function(index){
        return ($(this).data("foo") == val || val == 0);
    }).show();
});
于 2012-10-30T15:24:27.263 回答