Jquery json选择问题


jquery json to select issues

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'])总是返回错误"值不实现接口Node."

谁能指出我如何能得到特定的JSON数据,我有进入选择脚本?

.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/

DEMO: 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);
});