1

tdタグ内の値ではなく、データ属性に基づいてテーブルをフィルタリングしようとしています。

問題は、常にこのエラーが発生するため、動作させることができないことです。

キャッチされていない TypeError: 未定義のメソッド 'match' を呼び出せません

$(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/

4

1 に答える 1

3

データ属性は td ではなく tr にあり.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();
            }

        });                
    });
});​

デモ

于 2012-12-27T02:43:47.517 に答える