我有很多(30多个)Bootstrap面板,如下所示(每个都有不同的标题和内容):
<div class="panel">
<div class="panel-heading">
<h3 class="panel-title">Title</h3>
</div>
<div class="panel-body">
Content
</div>
<div class="panel-footer">
Footer
</div>
</div>
我有一个搜索输入
<input type="text" id="filter" placeholder="Filter Algorithms">
当有人键入过滤器框时,我会想要这样做,它会搜索面板的标题并根据需要过滤掉它们。我以前见过这个,但我不太清楚从哪里开始。这是我到目前为止的代码:
$('#filter').keyup(function(){
$('body').find('.panel-title').find($('#filter').val());
});
答案 0 :(得分:5)
试试这个:
var $panels = $('.panel');
$('#filter').on('keyup', function() {
var val = this.value.toLowerCase();
$panels.show().filter(function() {
var panelTitleText = $(this).find('.panel-title').text().toLowerCase();
return panelTitleText.indexOf(val) < 0;
}).hide();
});
<强>参考强>
jQuery.filter()
:http://api.jquery.com/filter 答案 1 :(得分:0)
这个jquery插件可能很有用: http://labs.easyblog.it/jquery-filterbox/
$('#list').filterbox({
container: '.list-group',
child: '.list-group-item',
childKey: '.list-group-item > .title'
});