【问题标题】:Why doesn't my counter value ever reach more than 1?为什么我的计数器值从未超过 1?
【发布时间】:2018-11-26 21:30:24
【问题描述】:

当我在搜索栏中输入名称后从 json 文件中获取结果时,我试图在我的 jquery 搜索中使用 count 来查找找到的匹配总数。目前,我只在每个结果之后显示 1 个匹配项,而不是搜索中的匹配项总数。我在这里缺少什么吗?谢谢

这里是代码

$(document).ready(function() {
    $('#search').keyup(function() {
        $('#result').html('');
        var searchField = $('#search').val();
        var expression = new RegExp(searchField, "i");
        $.getJSON('address.json', function(data) {

            $.each(data, function(key, value) {

                var count = 0;

                if (value.name.search(expression) != -1) {
                    count++;
                    $('#result').append('<li class="list-group-item">' 
                        + value.name + '</li>');
                    $('#result').append(count + 'Matches Shown');

                }

                if (searchField == "") {
                    $('#result').html(""); // this clears the SearchBar
                    return; // this makes the bar return to it's original state
                }
            });
        });
    });
});

【问题讨论】:

    标签: jquery ajax search


    【解决方案1】:

    您在每次迭代时重置 count。在每个函数之外定义它。

    $(document).ready(function() {
        $('#search').keyup(function() {
            $('#result').html('');
            var searchField = $('#search').val();
            var expression = new RegExp(searchField, "i");
            var count = 0;
    
            $.getJSON('address.json', function(data) {
                $.each(data, function(key, value) {
                    if (value.name.search(expression) != -1) {
                        count++;
                        ...
    

    【讨论】:

      猜你喜欢
      • 2021-12-17
      • 1970-01-01
      • 2016-09-29
      • 1970-01-01
      • 1970-01-01
      • 2020-11-17
      • 1970-01-01
      • 1970-01-01
      • 2021-12-21
      相关资源
      最近更新 更多