<li>
この関数は現在、要素内のテキストで要素をフィルタリングしています<li>
。タグ内のテキスト(データ属性など)でもフィルタリングされるように変更するにはどうすればよいですか<li>
>。
に変更($(this).text().search(...))
してみまし($(this).search(...))
たが、関数が完全に機能しなくなりました。
私はここに実用的な例でフィドルを投稿しました:http://jsfiddle.net/chayacooper/sMEbN/
$(document).ready(function () {
$('#list li').addClass('visible');
$('#search').show();
$('#filter').keyup(function(event) {
if (event.keyCode == 27 || $(this).val() == '') {
$(this).val('');
$('#list li').removeClass('visible').show().addClass('visible');
}
else {
filter('#list li', $(this).val());
}
});
});
function filter(selector, query) {
query = $.trim(query);
query = query.replace(/ /gi, '|');
$(selector).each(function() {
($(this).text().search(new RegExp(query, "i")) < 0) ? $(this).hide().removeClass('visible') : $(this).show().addClass('visible');
});
}