我正在尝试使用外部JSON文件中的数据填充HTML下拉菜单,该文件包含以下内容
{
"Destinations": [
{
"destinationName": "London",
"destinationID": "lon"
},
{
"destinationName": "New York",
"destinationID": "nyc"
},
{
"destinationName": "Paris",
"destinationID": "par"
},
{
"destinationName": "Rome",
"destinationID": "rom"
}
]
}
我想要的是显示目的地名称的下拉菜单,例如伦敦,纽约等,但我很困惑如何处理这个问题。
感谢任何帮助。
答案 0 :(得分:0)
在html中创建<select>
标记,并使用<option>
属性将其填充为value
。
Value
将是destinationID
,但会显示destinationName
。
<form action="demo_form.asp">
<select name="cars">
<option value="volvo">Volvo XC90</option>
<option value="saab">Saab 95</option>
<option value="mercedes">Mercedes SLK</option>
<option value="audi">Audi TT</option>
</select>
<input type="submit" value="Submit">
</form>
答案 1 :(得分:0)
试试这段代码:
$.getJSON('yourfile.json', function(data) {
destinations = data['Destinations']
$.each(destinations, function(id, destination) {
destination = destination["destinationName"]
alert(destination)
})
});
它允许您在目标变量中获取目标值,之后,可以使用此变量的值执行所有操作。
答案 2 :(得分:0)
请考虑您从服务器获得响应,如
{
"Destinations": [
{
"destinationName": "London",
"destinationID": "lon"
},
{
"destinationName": "New York",
"destinationID": "nyc"
},
{
"destinationName": "Paris",
"destinationID": "par"
},
{
"destinationName": "Rome",
"destinationID": "rom"
}
]
}
然后你的下一步应该是那个json的迭代
$.each(data.Destinations, function(key, val) {
items.append('<option value="' + val.destinationID + '">' + val.destinationName + '</option>');
});
你可以在这里看到演示Fiddle Demo
答案 3 :(得分:0)
使用each
和append
select
,如下所示:
$.each(data.Destinations, function(i, v) {
$('#destinations').append('<option value="' + v.destinationID + '">' + v.destinationName + '</option>');
});
<强> jsFiddle 强>
更新了示例(http://jonathangatenby.co.uk/Candidate/json/destinations.json的test.html)
<select id="destinations">
<option value="">Select</option>
</select>
<a href="#" id="fetch">Fetch JSON</a>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
$('#fetch').click(function() {
$.post('http://jonathangatenby.co.uk/Candidate/json/destinations.json', {}, function(data) {
$.each(data.Destinations, function(i, v) {
$('#destinations').append('<option value="' + v.destinationID + '">' + v.destinationName + '</option>');
});
});
});
});
</script>
工作示例确保html文件或您ajax
call
所在的文件位于同一个域(jonathangatenby.co.uk)