Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 筛选/搜索功能不以动态添加的行为目标_Javascript_Jquery_Html_Filter_Html Table - Fatal编程技术网

Javascript 筛选/搜索功能不以动态添加的行为目标

Javascript 筛选/搜索功能不以动态添加的行为目标,javascript,jquery,html,filter,html-table,Javascript,Jquery,Html,Filter,Html Table,我找到了一个如何在表中搜索值的示例 var $userRows = $('#UserTableContainer tr'); $('#searchuser').keyup(function () { var val = $.trim($(this).val()).replace(/ +/g, ' ').toLowerCase(); $userRows.show().filter(function () { var text =

我找到了一个如何在表中搜索值的示例

 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();
    });
它在“普通”表上工作得很好,例如,请参见,我使用jQuerys模板函数向表中添加值

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

    $.tmpl('userList', item).appendTo("#UserTableContainer");
}
函数PrintUsers(项){
$.template('userList','\
${Firstname}${Lastname}\
');
$.tmpl('userList',item).appendTo('UserTableContainer');
}
当我尝试搜索表中的元素时,它只过滤我的标题,即该表中的“名称”行

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

名称

有人知道我做错了什么吗?

更新代码
对于动态添加的dom元素,您需要使用
'on'
,因此我们不能在当前dom上使用keyup。 使用方法是:

 $(document).on(events, selector, data, handler);

托比亚斯,你的标记可能是错的

顺便说一句,如果您将使用表标题,并且您不希望它过滤这些:

var $rows = $('#table tr').not(':first');

好吧当我试图使用更新后的代码时,我不断得到“uncaughttypeerror:Object[Object Object]没有“on”方法”。我需要包括什么才能使用它吗?您可能正在使用旧版本的jQuery。在用于jquery 1.7+的works上,您可以使用live或delegate(delegate应用于1.7.x以外的jquery版本)。[阅读更多]这里()注意到我实际上可以在Intellisense中看到“on”函数。是的,我正在使用jQuery1.8。不过,我一直在犯错误。是否需要将函数添加到JavaScript文档的任何特定部分?是否将其包装在$(document).ready(function(){//code})。。首先,感谢您抽出时间回答我的问题。我已经试过把它包装起来。就绪标签,我也已经检查了链接。他们没有一个人告诉我出了什么问题/