2017-02-21 2 views
0

テーブルを作成しましたが、何とか行をフィルタリングできるようになりました。それはプロパティ分割を読むことができないので私にエラーを与えます。ここに私のfiddleファイルへのリンクがあります。どんな助けも素晴らしいだろう。前もって感謝します。テーブル用のjQueryフィルタ

$("#crudtable_filter").keyup(function() { 
    //split the current value of searchInput 
    var data = this.value.split(" "); 
    //create a jquery object of the rows 
    var jo = $("#crudtable").find("tr"); 
    if (this.value == "") { 
     jo.show(); 
     return; 
    } 
    //hide all the rows 
    jo.hide(); 

    //Recusively filter the jquery object to get results. 
    jo.filter(function (i, v) { 
     var $t = $(this); 
     for (var d = 0; d < data.length; ++d) { 
      if ($t.is(":contains('" + data[d] + "')")) { 
       return true; 
      } 
     } 
     return false; 
    }) 
    //show the rows that match. 
    .show(); 
}).focus(function() { 
    this.value = ""; 
    $(this).css({ 
     "color": "black" 
    }); 
    $(this).unbind('focus'); 
}).css({ 
    "color": "#C0C0C0" 
}); 
+0

あなたの 'this.value.split(" ");'未定義値を取得するとそれを解決して処理を進めます。 – RRajani

答えて

3

の作業フィドル:http://jsfiddle.net/sofqjbrg/3/

説明:イベントリガー要素の値を取得するために

は、あなたが$(event.target).val()を使用する必要があります。 $(event.target)$(this)の違いについては

は、 Difference between $(this) and event.target?

PSを参照してください:あなたのフォーカスイベントは、間違った要素に登録されています。

+0

thanx、charmのように働いていましたが、私が検索した特定の要素しか見ることができません。選択した単語の行全体を見たいのですが? – Harshit

+0

@Harshit最初にすべてのtr excpetを隠しておくことで、テーブルヘッダを保持したいかもしれません: 'var jo = $("#crudtable ")。find(" tr ")。not(":eq(0) "); '。 New JsFiddle:http://jsfiddle.net/sofqjbrg/5/ – user3682091

関連する問題