在jQuery中搜索许多div的属性

Nov*_*ing 1 javascript jquery

$('#div_search').keypress(function() {
    var search_term = $(this).val();
    $('.ticker_list').children('div').each(function() {
        var search_value = $(this).attr('search_term');
        if (search_value.indexOf(search_term) >= 0) {
            $(this).show();
        }
        else {
            $(this).hide();
        }
    });
});?
Run Code Online (Sandbox Code Playgroud)

这真的很慢,这是有道理的,因为它运行500个div并搜索每个'search_term'属性以查看输入的搜索词是否在attr中.有更好或更快的方法吗?我甚至对更好的搜索机制感兴趣.

我也可以根据需要修改DOM.

编辑 对不起我应该提到说搜索术语是"你好今天约翰尼",术语"你好","今天"和"约翰尼"必须返回true,这就是为什么我在上面的脚本中使用indexOf.

Nie*_*sol 5

这是一个简单的CSS选择器:

$(".ticker_list > div[search_term*="+search_term+"]")
Run Code Online (Sandbox Code Playgroud)

您可能需要逃脱search_term,具体取决于它可能包含的内容.