0

我从 ajax 脚本得到以下输出:

{"DATA":[{"COUNTRYCODE":"1","DESCRIPTION":"USA","COUNTRYID":"211"},   {"COUNTRYCODE":"1","DESCRIPTION":"Canada","COUNTRYID":"37"},{"COUNTRYCODE":"1","DESCRIPTION":"Dominican Republic","COUNTRYID":"224"},

我正在尝试使用来自此 JSON 数据的信息填充选择菜单:

<script type="text/javascript" charset="UTF-8">
$.getJSON(
        'getcountries.php',
        function(data) {
            var items = [];
            $('#country').append(data);

            $.each(data['DATA'], function(key, val) {
                    $.each(val, function(key, value) {
                            console.log(value);
                    });
            });
    }
    );

它的问题是$('#country').append(data) (或append(data['DATA'])总是返回错误“值没有实现接口节点。

谁能指出我如何将我拥有的特定 JSON 数据放入选择脚本中?

4

2 回答 2

4

.append()只接受 HTML 字符串、DOM 元素或 jQuery 对象

见:http ://api.jquery.com/append/

我认为这是您真正想要的结果。

var data = {"DATA":[{"COUNTRYCODE":"1","DESCRIPTION":"USA","COUNTRYID":"211"},{"COUNTRYCODE":"1","DESCRIPTION":"Canada","COUNTRYID":"37"},{"COUNTRYCODE":"1","DESCRIPTION":"Dominican Republic","COUNTRYID":"224"}]};

var $select = $('#country').empty();

$select.append(
    data.DATA.map(function (el, i) {
        return $('<option>')
            .val(el.COUNTRYID)
            .text(el.DESCRIPTION)
            .data('DATA', el); // in case you also want to access its COUNTRYCODE
    })
);

jsFiddle:http: //jsfiddle.net/terryyounghk/ZshG4/

于 2013-04-22T15:23:56.540 回答
1

演示:http: //jsfiddle.net/q5Q3d/

var a = {
    "DATA":[
        {"COUNTRYCODE":"1","DESCRIPTION":"USA","COUNTRYID":"211"},   
        {"COUNTRYCODE":"1","DESCRIPTION":"Canada","COUNTRYID":"37"},
        {"COUNTRYCODE":"1","DESCRIPTION":"Dominican Republic","COUNTRYID":"224"}
    ]
}

$.each(a.DATA, function(idx, val){
    var option = "<option value='" + val.COUNTRYID + "'>" + val.DESCRIPTION + "</option>";
    $('select').append(option);
});
于 2013-04-22T15:21:33.167 回答