在列表中的Jquery中筛选结果

时间:2012-06-14 22:01:25

标签: jquery ajax json filter

我下载并编辑了一个来自互联网的代码,基本上我想要做的是创建一个字符串列表,我正在使用JSON从数据库中读取。 列表是完美的,现在我想要做的是使用Jquery过滤结果(文本框)。 最好的方法是什么? 当用户在文本框中键入内容时,显示结果的完整列表,过滤列表中的结果。

由于

$(function ()
{
    $.ajax({
        url: 'api.php', data: "", dataType: 'json',  success: function(rows)
        {
            var list = $("#toggle").append('<ul></ul>').find('ul');
            for (var i in rows)
            {
            var row = rows[i];
                //var id = row[0];
                var Dname = row[4];
                Dname = Dname.toLowerCase();
                list.append("<li>"+Dname+"</li><div>Pulse</div>");
            }
            $('ul li:odd').addClass('zebra_odd');
            $('ul li:even').addClass('zebra_even');
            $("li").click(function(){
                $(this).toggleClass("active");
                $(this).next("div").stop('true','true').slideToggle();
            });
        }
    });
});

1 个答案:

答案 0 :(得分:4)

这很有效:

$('input').keyup(function() {                       // Bind keyup event to textbox
    var textboxVal = $(this).val().toLowerCase();   // Get value of textbox
    $('ul li').each(function() {                    // loop through the list
        var listVal = $(this).text().toLowerCase(); // get value of the <li>
        if(listVal.indexOf(textboxVal) >= 0) {      // search if textboxVal is in listVal
            $(this).show();                         // if true show this <li>
        } else {
            $(this).hide();                         // else hide this <li>
        }
    });
});

示例:http://jsfiddle.net/PWAXt/