问题描述
|
我在函数中包含以下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。