0

テーブル内の値を検索する方法の例を見つけました。

 var $userRows = $('#UserTableContainer tr');
    $('#searchuser').keyup(function () {
        var val = $.trim($(this).val()).replace(/ +/g, ' ').toLowerCase();

        $userRows.show().filter(function () {
            var text = $(this).text().replace(/\screen+/g, ' ').toLowerCase();
            return ! ~text.indexOf(val);
        }).hide();
    });

「通常の」テーブルでは正常に機能します。たとえば、このhttp://jsfiddle.net/7BUmG/2/を参照してください。ただし、jQueryテンプレート関数を使用してテーブルに値を追加します。

function PrintUsers(item) {
    $.template('userList', '<tr>\
         <td>${Firstname} ${Lastname}</td>\
         </tr>');

    $.tmpl('userList', item).appendTo("#UserTableContainer");
}

テーブル内の要素を検索しようとすると、ヘッダー、つまりこのテーブルの「名前」行のみがフィルタリングされます。

    <table id="UserTableContainer">
        <tr>
            <th>Name</th>
        </tr>
    </table>

誰かが私が間違っていることについて何か考えを持っていますか?

4

2 に答える 2

0

コードを更新 http://jsfiddle.net/7BUmG/128/
動的に追加された for dom 要素 を使用する必要があるため'on'、現在の dom で keyup を使用することはできません。使用方法は::

 $(document).on(events, selector, data, handler);
于 2012-09-18T06:29:30.100 に答える
0

トバイアス、あなたのマークアップはおそらく間違っています。

ところで、テーブル ヘッダーを使用する予定で、これらをフィルター処理したくない場合は、次のようにします。

var $rows = $('#table tr').not(':first');
于 2012-09-18T06:31:37.027 に答える