3

我有很多(30+)个引导面板,如下(每个都有不同的标题和内容):

<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());
});
4

2 回答 2

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();
});

参考

  1. jQuery.filter()http ://api.jquery.com/filter
于 2013-10-08T12:14:17.510 回答
0

这个 jquery 插件可能很有用:http: //labs.easyblog.it/jquery-filterbox/

$('#list').filterbox({
        container: '.list-group',
        child: '.list-group-item',
        childKey: '.list-group-item > .title'
    });
于 2014-02-24T09:26:41.027 回答