0

文本输入过滤正在工作,但我不知道如何使用组合框实现类别。该类别正在使用的年龄。请帮助我完成这项任务:(

这是我的示例代码

这是我的看法

<select>
    <option>all age</option>
    <option>16</option>
    <option>18</option>
    <option>20</option>
</select>

    <input />
     <table class="AvailableGroupLab availGrpLabs avalLabs">
        <thead>
        <tr>
            <th>Name</th>
            <th>Age</th>
        </tr>
         </thead>
    <tbody>

        <tr>
            <td><span>wewe</span>

            </td>
            <td>16</td>
        </tr>
        <tr>
            <td><span>Melvin</span>

            </td>
            <td>18</td>
        </tr>
        <tr>
            <td><span>Marvin</span>

            </td>
            <td>20</td>
        </tr>

            <tr>
            <td><span>wewex</span>

            </td>
            <td>20</td>
        </tr>
         </tbody>
    </table>

这是 javascript

function filter(element) {
    var $trs = $('.AvailableGroupLab tbody tr').hide();
    var regexp = new RegExp($(element).val(), 'i');

    var $valid = $trs.filter(function () {
        return regexp.test($(this).find('td:first-child').text())
    }).show();

    $trs.not($valid).hide()
}

$('input').on('keyup change', function () {
    filter(this);
})
4

1 回答 1

1

您的代码的问题是您将正则表达式与 tr 的第一个孩子进行比较,而您的年龄是第二个孩子。

var $valid = $trs.filter(function () {
    return regexp.test($(this).find('td:eq(1)').text())
    // or 
    return regexp.test($(this).find('td:last-child').text())
}).show();

我希望这能帮到您。

于 2013-09-25T09:32:19.413 回答