使用jQuery过滤具有on data属性的表

时间:2012-12-27 02:34:50

标签: jquery search filter attr

我正在尝试根据数据属性过滤表格,而不是td标记内的值。

问题是,我无法让它工作,因为我总是得到这个错误:

  

未捕获的TypeError:无法调用未定义的方法'匹配'

$(document).ready(function(){
    var elemens = $("td")
    searchInput = $("#search")
    searchInput.on('keyup',function(){

        elemens.each(function(){

            var re = new RegExp(searchInput.val(), 'gi');
            if( $(this).data('gui').match(re) === null )
            {
                $(this).parent('tr').hide();
            }else{
                $(this).parent('tr').show();
            }

        });                
    });
});​

我的小提琴: http://jsfiddle.net/T57ba/3/

1 个答案:

答案 0 :(得分:3)

数据属性在tr而不是td上,.data()也将转换适用的类型,在本例中为数字。而是使用.attr()

$(document).ready(function(){
    var elemens = $("tr")
    searchInput = $("#search")
    searchInput.on('keyup',function(){            
        elemens.each(function(){                
            var re = new RegExp(searchInput.val(), 'gi');
            if( $(this).attr('data-gui').match(re) === null ){
                $(this).hide();
            }
            else{
                $(this).show();
            }

        });                
    });
});​

DEMO