2011-05-31 41 views
0

我有一個JS代碼中的一段功能,響應用戶按下回車鍵(不顯示)。我關心的部分代碼所示:如何迭代JS中的散列並返回所有匹配結果?

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

我有以下散列:

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的城市中的散列出現兩次。我的問題是上面的$ .each函數,只顯示2個Littleside中的1個。我想在哈希中顯示所有匹配項,而不僅僅是1個匹配項。

如何更正我的代碼以返回所有匹配的城市而不是僅顯示一個城市?

預先感謝您

回答

3

你需要擺脫空的()調用。您正在清除每場比賽的#city /#狀態。

$('#city').append(value['city']); 
$('#state').append(value['state']); 

此外,您可能希望國家名稱,而不是城市的名字追加到#state元素

+1

不過,如果你想清空兩個元素,前'$ .each'做。 – aorcsik 2011-05-31 16:05:30