鉴于我的JSON文件,当用户从下拉菜单中选择由JSON提供的给定选项时,我想在结果div中显示headerText的值:
HTML
<div id="result"></div>
<select id="dropdown">
<option value="">Select</option>
</select>
<a href="#" id="fetch">Fetch JSON</a>
JSON
var json = {
"dropdown": [
{
"optionText": "Budget Starter",
"headerText": "Work 1-on-1 with your expert to build new spending habits (and break some old ones). Get on a real, sustainable budget that fits your lifestyle.",
"color": "#59c5c7"
},
{
"optionText": "5 Year Planner",
"headerText": "Declare what you want - freedom from debt, security for your family, or an amazing trip. Your expert will build you a custom plan to help you get there.",
"color": "#009cd0"
},
{
"optionText": "Portfolio Builder",
"headerText": "Start training for the world's hardest game: investing. Your expert will help you grow into a disciplined and balanced portfolio manager.",
"color": "#39ad74"
}
]
};
的jQuery
$('#fetch').click(function() {
$.post('/echo/json/', {json: JSON.stringify(json)}, function(data) {
$.each(data.dropdown, function(i, v) {
$('#dropdown').append('<option value="' + v.color + '">' + v.optionText + '</option>');
});
});
});
//change color of header container based on dropdown selection
$("#dropdown").change(function() {
$("#result").css("background-color", $(this).val());
}).change();
CSS
#result{height: 50px;}
答案 0 :(得分:0)
由于您正在使用jQuery,因此您可能希望使用data API来实现此目的。它允许您将任意对象与DOM元素一起存储。
修改了jQuery(参见此处的fiddle)
$('#fetch').click(function() {
$.post('/echo/json/', {json: JSON.stringify(json)}, function(data) {
var dropdown = $('#dropdown');
$.each(data.dropdown, function(i, v) {
var option = $('<option value="' + v.color + '">' + v.optionText + '</option>');
option.data('header', v.headerText).appendTo(dropdown);
});
});
});
//change color of header container based on dropdown selection
$("#dropdown").change(function() {
$("#result").css("background-color", $(this).val()).text($(this).find('option:selected').data('header'));
}).change();