如何更正我的代码以返回所有匹配的城市单独的 div?



我在一个函数中有以下JS代码,该函数响应用户按下回车键(未显示)。我关心的代码部分如下所示:

   $.each(cityhash,function(key,value){
        if(value['city']== user_input) {
            $('#city').append(value['city']);
            $('#state').append(value['state']);
        }

我有以下散列:

cityhash =  [{"address":"07288 Albertha Station","city":"Littelside","state":"Missouri"},{"address":"0615 Mervin Rapid","city":"Tessmouth","state":"South Carolina"},{"address":"779 Elody Lock","city":"Littelside","state":"New Mexico"}]

正如您所看到的,Littelside城市在hash中出现了两次。我的问题是,如果有两场城市比赛,那么这些城市会直接并排排列。例如Littelside Littelside。我希望每个匹配的Littelside都出现在自己的div中。我该怎么做?

如何更正我的代码,以在各自的div中返回所有匹配的城市

提前感谢

我不会在带有id="city"的元素中设置城市文本,而是用id="cities"创建一个元素,然后将城市元素附加在其中。

$('#cities').append('<div class="city">' + value['city'] + ', ' + 
    value['state'] + '</div>');

类似这样的东西:

$('#city').append($("<div>").html(value['city']));
var prev_city;
$.each(cityhash,function(key,value){
    if(value['city']== user_input) {
        $('#city').append(value['city']);
        $('#state').append(value['state']);
        if(value['city'] == prev_city){
            // Append to new div logic
        } else {
            prev_city = value['city'];
        }
    }
}

不确定你现在是如何打印城市的,但基本上你需要跟踪前一个城市,以知道是否需要添加另一个div。

相关内容

最新更新