javascript - 如何將json的name放到下拉列表中呢?
問題描述
現在正在搞兩個個下拉列表,用來選擇兩個地點,地點的名稱與坐標都在json里面了,因為數據多,不方便將一個個名稱放到HTML中,所以上網查了一下方法,但是依然沒有顯示,就想問問怎么才能提取json里面的名稱放到HTML的下拉列表中呢?謝謝了。
{ '北京首都國際機場':{ 'latitude':40.08010101, 'longitude':116.5849991 }, '北京西郊機場':{ 'latitude':39.96080017, 'longitude':116.2570038 }, '內蒙古赤峰機場':{ 'latitude':42.23500061, 'longitude':118.9079971 }, '長治王村機場':{ 'latitude':36.24750137, 'longitude':113.1259995 }, '鄂爾多斯伊金霍洛機場':{ 'latitude':39.49, 'longitude':109.8613889 }, '大同機場':{ 'latitude':40.06029892, 'longitude':113.4820023 }, '二連浩特賽烏蘇國際機場':{ 'latitude':43.4225, 'longitude':112.0966667 }, '邯鄲機場':{ 'latitude':36.52583333, 'longitude':114.4255556 }, '白塔國際機場':{ 'latitude':40.85139847, 'longitude':111.8239975 }, '東山機場':{ 'latitude':49.20500183, 'longitude':119.8249969 }, '北京南苑機場':{ 'latitude':39.78279877, 'longitude':116.3880005 }, '包頭二里半機場':{ 'latitude':40.56000137, 'longitude':109.9970016 }, '山海關機場':{ 'latitude':39.9681015, 'longitude':119.7310028 }, '石家莊正定國際機場':{ 'latitude':38.28070068, 'longitude':114.6969986 }, '天津濱海國際機場':{ 'latitude':39.12440109, 'longitude':117.3460007 }, '通遼機場':{ 'latitude':43.55670166, 'longitude':122.1999969 }, '烏海機場':{ 'latitude':39.7934, 'longitude':106.7993 }, '烏蘭浩特機場':{ 'latitude':46.195333, 'longitude':122.008333 }, '錫林浩特機場':{ 'latitude':43.91559982, 'longitude':115.9639969 }, '大連邢臺機場':{ 'latitude':36.8831, 'longitude':114.4293 }, '運城關公機場':{ 'latitude':35.116391, 'longitude':111.0313889 }, '太原武宿機場':{ 'latitude':37.74689865, 'longitude':112.6279984 }, '北海機場':{ 'latitude':21.5394001, 'longitude':109.2939987 }, '常德桃花源機場':{ 'latitude':28.91889954, 'longitude':111.6399994 }, '懷化芷江機場':{ 'latitude':27.44111111, 'longitude':109.7 }, '大庸機場':{ 'latitude':29.10280037, 'longitude':110.4430008 }, '廣州白云國際機場':{ 'latitude':23.39240074, 'longitude':113.2990036 }, '長沙黃花國際機場':{ 'latitude':28.18919945, 'longitude':113.2200012 }, '衡陽東江機場':{ 'latitude':26.90530014, 'longitude':112.6279984 }, '桂林兩江國際機場':{ 'latitude':25.21809959, 'longitude':110.0390015 }, '羅定素龍機場':{ 'latitude':22.711169, 'longitude':111.60134 }, '零陵機場':{ 'latitude':26.338661, 'longitude':111.610043 }, '梅縣機場':{ 'latitude':24.35000038, 'longitude':116.1330032 }, '南寧吳圩機場':{ 'latitude':22.60829926, 'longitude':108.1719971 }, '汕頭外砂機場':{ 'latitude':23.42690086, 'longitude':116.762001 }, '珠海機場':{ 'latitude':22.00639915, 'longitude':113.3759995 }}
問題解答
回答1:如果你想將數據渲染到Html里面的話,首先得把你的數據結構變一下,你貼出來的數據結構不規范///////////////////////////////////////////你這樣修改的數據結構仍然取不出來哦,應該像下面的結構:
{ 'address':[{ 'name':'北京首都國際機場', 'latitude':40.08010101, 'longitude':116.5849991},{ 'name':'北京西郊機場', 'latitude':39.96080017, 'longitude':116.2570038}....... ]}
循環address,這樣你才能取到值
回答2:你可以循環遍歷這個json對象, for(var key in json){//每一個key值就是機場名}
回答3:function render() { $.ajax({url: ’/api/getJSON’,dataType: ’json’ }) .done(function (res) {var html = ’’;for (var location in res) { html += ’<option>’ + location + ’</option>’;}console.log(html); })}
是這個意思么。
回答4:可以用select2插件,可以ajax模糊匹配,很好用
把經緯度用屬性保存起來,提交的時候取出來,或者用FormData對象提交表單
也可以做一個隱藏表單,選擇的時候就把經緯度充填到隱藏表單,提交
當然,說起來容易,做起來還是要花點時間,樓主加油
回答5:es6的話很簡單:
let keys = Object.keys(obj); //就可以獲取一個數組,判斷輸入的值是否在這個數組中可以:keys.find(fn); //來獲取相應的值,fn里面可以進行模糊匹配
es5的話麻煩點:
var arr = [];for( var key in obj ){ arr.push(key);}arr.each(fn) //fn里面可以進行模糊匹配
你如果要弄個下拉表,特別是數據量龐大的話有點不現實,通過獲取輸入值來進行匹配的話是最好的
回答6:這數據結構 咋感覺那么怪呢
相關文章:
1. java - 如何在Fragment中調用Activity的onNewIntent?2. javascript - js 對中文進行MD5加密和python結果不一樣。3. python - 獲取到的數據生成新的mysql表4. mysql里的大表用mycat做水平拆分,是不是要先手動分好,再配置mycat5. javascript - 圖片鏈接請求一直是pending狀態,導致頁面崩潰,怎么解決?6. python的文件讀寫問題?7. javascript - ionic1的插件如何遷移到ionic2的項目中8. window下mysql中文亂碼怎么解決??9. sass - gem install compass 使用淘寶 Ruby 安裝失敗,出現 40410. javascript - jquery hide()方法無效
