Znalazłem przykład sposobu wyszukiwania wartości w tabeli.

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

Działa dobrze w tabelach "normalnych", patrz na przykład to http://jsfiddle.net/7bumg/2/ Jednak dodam wartości do mojego stołu za pomocą funkcji szablon jQuerys.

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

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

Kiedy próbuję szukać elementów w moim stole, tylko filtruje mój nagłówek, tj. Wiersz "Nazwisko" w tej tabeli.

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

Czy ktoś ma jakieś pomysły, co robię źle?

0
user1252903 18 wrzesień 2012, 10:18

2 odpowiedzi

Najlepsza odpowiedź

Kod aktualizacji http://jsfiddle.net/7bumg/128/
Musisz użyć 'on' dla elementów DOM, które dodajemy dynamikę. Sposób użycia jest ::

 $(document).on(events, selector, data, handler);
0
Ashish Gupta 18 wrzesień 2012, 06:29

Tobias, twój znacznik jest prawdopodobnie nie tak.

BTW Jeśli będziesz używany nagłówków tabeli, a nie chcesz, aby to filtrować:

var $rows = $('#table tr').not(':first');
0
Johan Haest 18 wrzesień 2012, 06:31