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

this関数内ではfilter、select 要素を参照しません。

$("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 に答える