如何使用JQuery获取JSON列表中第n个项目的值?

3

我该如何检索JSON文件中的第n个值(以及它的子项)?

例如,我有一个按JSON格式排列的课程和相关事件的集合,我正在使用它来填充一些选择列表,例如:

// extract from courselist.php
[{
    "optionValue": "Getting Research into Practice",
    "events": [
        {"date": "29 October"}
    ] 
},
{
    "optionValue": "Human Resources for Managers",
    "events": [
        {"date": "September 1"},
        {"date": "November 2"}
    ]
}]

我正在通过这个JSON创建表单:
$(function(){
$("select#coursetype").change(function(){
    $.getJSON("courselist.php",{id: $(this).val(), ajax: 'true'}, function(data){
        var options = ''; //item in select list
        options += '<option value=""></option>';
        for (var i = 0; i < data.length; i++) {
            options += '<option value="' + [i] + '">' + data[i].optionValue + '</option>';  
            $("#courselist").html(options);
            $('#courselist option:first').attr('selected', 'selected');
        };
    })
})  
});

...它输出类似以下的HTML:

<select id="coursetype" name="coursetype">
    <option value="0">Getting Research into Practice</option>
    <option value="1">Human Resources for Managers</option>
</select>

假设用户选择了“管理人员的人力资源”(value="1"),并且通过$_POST提交了表单,那么我如何从POST值中检索到该课程名称及其事件信息呢?

1个回答

2
只要您仍然拥有可用的JSON对象,就可以将已发布的值反馈回该对象中作为索引:
var courseName = data[postValue].optionValue;
var courseEvents = data[postValue].events;
for(theDate in courseEvents){
    // do something with the date
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接