0

我有一个看起来像这样的 JSON 结构

[
   {
      "term_id":"28",
      "name":"Audi",
      "slug":"audi",
      "term_group":"0"
   }
]

在我的 HTML 页面中,我有一个下拉按钮,我想在单击后显示名称。为此,我有一些 Javascript 代码,如下所示:

var serviceURL = "http://www.dohamark.com/samudra/";

var make;

$('#make1').bind('pageinit', function(event) {
    getEmployeeList();
});

function getEmployeeList() {
    $.getJSON(serviceURL + '1st.php', function(data) {
        $.each(data, function(index, employee) {
            $('#make1').append('<option>' + employee.name + '</option>');
        });
    });
}

但是,此脚本在下拉按钮单击中不显示任何内容,而是在空白处显示。我是 JavaScript 的新手,对 JSON 解析不太了解。有人可以帮助确定我的错误吗?

4

4 回答 4

2

试试这个:

$.each(data, function (index, employee) {
    $('#make1').append('<option>' + employee.name + '</option>');
});

小提琴:http: //jsfiddle.net/KYtph/2/

你的代码很好。确保它不像其他人建议的那样跨域,并且它被正确解析为 json。

于 2013-04-01T16:28:22.253 回答
2

这个怎么样:

for (var index in employee) {
    $('#make1').append($('<option>').text(employee[index].name));
});

如果我正确阅读了您的问题,我认为应该这样做。

编辑- 只是为了确保 OP 清楚,当我employeefor in循环中使用变量时,它应该引用返回的 JSON。

于 2013-04-01T16:57:29.167 回答
0

我会这样写:

$.each(data, function () {
    $('#make1').append('<option>' + this.name + '</option>');
});

此外,@Mike Bryant 提出了一个很好的观点;如果您要跨域,那么如果没有 JSON-P 之类的东西,这将永远无法工作。

于 2013-04-01T16:52:48.233 回答
0

请尝试以下代码:

    var dd = $("#make1");

    $(dd).empty();
    $(dd).append($('<option />').attr('value', '-1').text('-----Select----'));
     $.each(data, function(index, employee) {
        dd.append($('<option />').attr('Value',employee.ID).text(employee.Name));
    });
于 2013-04-03T14:21:57.737 回答