代码之家  ›  专栏  ›  技术社区  ›  vnnotech

在select选项中迭代json数据

  •  1
  • vnnotech  · 技术社区  · 11 年前

    我使用的是$.getJSON,它在json数据下面返回。

    {
        "sEcho": 1,
        "iTotalRecords": 2,
        "iTotalDisplayRecords": 2,
        "aaData": [
            {
                "student": {
                    "id": "1",
                    "name": "gaurav"
                }
            },
            {
                "student": {
                    "id": "2",
                    "name": "abhishek"
                }
            }
        ]
    }
    

    我想将学生id和姓名放入选择选项值。 Html将如下所示:

    <select name='stud'>
    <option id='1'>gaurav</option>
    <option id='1'>abhishek</option>
    </select>
    

    当我使用JSON.stringify时,它正在返回对象对象。 提前感谢。

    2 回复  |  直到 11 年前
        1
  •  0
  •   swifty    11 年前

    这就是你想要的吗?(假设您正在页面上使用jQuery):

    <script type="text/javascript">
    var json = {
        "sEcho": 1,
        "iTotalRecords": 2,
        "iTotalDisplayRecords": 2,
        "aaData": [
            {
                "student": {
                    "id": "1",
                    "name": "gaurav"
                }
            }, {
                "student": {
                    "id": "2",
                    "name": "abhishek"
                }
            }
        ]
    };
    
    json.aaData.forEach(function(value) {   
        var student = value.student
         $('#mySelect')
             .append($("<option></option>")
             .attr("value",student.id)
             .text(student.name)); 
    });
    </script>
    
    <select id='mySelect' name='stud'>
    </select>
    

    请参阅此处的工作示例: http://jsfiddle.net/r5nn5wqu/

        2
  •  0
  •   krachleur    11 年前
    $.getJSON( "ajax/test.json", function( data ) {
      var items = [];
      $.each( data, function( key, val ) {
        $('select[name="stud"]').append('<option id="'+key+'" value="'+value+'"');
      });
    }