jQueryを使用して効果の高い単純なテーブルフィルターを作成するにはどうすればよいですか?改ページは気にしません。
リスト->データベースのデータを選択します。
プラグインは使いたくないので、ショートコードを使いたいです。
例:
jQueryを使用して効果の高い単純なテーブルフィルターを作成するにはどうすればよいですか?改ページは気にしません。
リスト->データベースのデータを選択します。
プラグインは使いたくないので、ショートコードを使いたいです。
例:
$('#inputFilter').keyup(function() {
var that = this;
$.each($('tr'),
function(i, val) {
if ($(val).text().indexOf($(that).val()) == -1) {
$('tr').eq(i).hide();
} else {
$('tr').eq(i).show();
}
});
});
普段は手伝いませんが、今朝は飽きてきました。
少し遅いことは知っていますが、このコードがお役に立てば幸いです。
<script>
$(document).ready(function(){
$("#yourInput").on("keyup", function() {
var value = $(this).val().toLowerCase();
$("#yourTableId tr").filter(function() {
$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
});
});
});
</script>
行のinnerHTMLを入力フィールドの値までテストし、テスト結果に応じてコンテンツを表示/非表示にしてみてください。
$('#test').bind('keyup', function() {
var s = new RegExp(this.value);
$('tr').each(function() {
if(s.test(this.innerHTML)) $(this).show();
else $(this).hide();
});
});
JSFIDDLEとサンプルテーブルおよび入力フィールド。
編集
.text()
innerHTMLの代わりに使用する方が良いかもしれません。パフォーマンス的にはinnerHTMLの方が優れて.text()
いますが、有効な検索結果としてhtmlタグを受け入れません。JSFIDDLE#2。