Jquery-在<li> </li>中过滤div

时间:2015-02-11 19:13:34

标签: jquery

我列出了一些div,我希望能够添加一个允许用户开始输入的输入字段,并根据每个div过滤div。我正在尝试下面的代码,但它不起作用。

$("#search").keyup(function(){    
    var search_text = $('#search').val();
    var rg = new RegExp(search_text,'i');
    var liLength=$("#dataList li").length;     
    for (var i = 0; i < liLength; i++) {
        if ($(".address").text().search(rg) || $(".trustee").text().search(rg) || $(".borrower").text().search(rg)) {
            $("#dataList li")[i].style.display="block";
        } else {       
            $("#dataList li")[i].style.display="none";
        }
    }
});

Fiddle

1 个答案:

答案 0 :(得分:1)

没有定义contains方法。您可以改用String.prototype.match。您还需要提供搜索块.address.trustee.borrower的上下文,以便在单个li元素内搜索:

$("#search").keyup(function () {
    var search_text = $('#search').val();
    var rg = new RegExp(search_text, 'i');

    $("#dataList li").each(function() {
        if ($(".address", this).text().match(rg) || $(".trustee", this).text().match(rg) || $(".borrower", this).text().match(rg)) {
            $(this).show();
        } else {
            $(this).hide();
        }    
    });
});

演示: http://jsfiddle.net/pbnjcy5u/1/