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

问题描述

| 我在函数中包含以下JS代码,该函数响应用户按下Enter键(未显示)。我关注的部分代码如下所示:
   $.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\",\"state\":\"New Mexico\"}]
如您所见,Littelside市在哈希中出现了两次。我的问题是,如果有两个城市比赛,那么这些城市就直接并排放置。例如LittelsideLittelside。我希望每个匹配的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。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...