jQuery每个未定义的项目

时间:2018-09-05 17:13:00

标签: jquery asp.net webforms

我的WebApi返回以下JSON对象:

[
{
    "Department_Id": 5,
    "Department_Description": "Test API 1"
},
{
    "Department_Id": 6,
    "Department_Description": "Test API 2"
},
{
    "Department_Id": 7,
    "Department_Description": "Test API 3"
}
]

在使用asp.net的网络表单中,我有以下代码:

<script type="text/javascript">
    $(document).ready(function() {
        $.ajax({
            type: "POST",
            url: "api/TicketDepartments/GetTicketDepartmentsComboBoxAsync",
            data: "{}",
            contentType: 'application/json; charset=utf-8',
            dataType: "json",
            async: false,
            success: function (data) {
                var select = $("#ddlDepartment");

                if (data) {
                    $(data).each(function(index, item) {
                        select.append($(" 
<option>").val(item.Value).text(item.Text));
                    });
                }
            },
            error: function (data) {
                alert("An error has occurred during processing your 
 request.");
            }
        });
    });
   </script>

但是,每当我尝试运行代码时,都会收到"item is not defined"错误。

我正在尝试填充

Select department :
    <asp:DropDownList ID="ddlDepartment" runat="server">
    </asp:DropDownList>

带有department_description和department_id,以便以后可以在程序中使用。

我不确定此错误的含义或来源。任何帮助都将受到欢迎。

2 个答案:

答案 0 :(得分:0)

我认为您的代码应为:

select.append($("<option>").val(item.Department_Id).text(item.Department_Description));
                    });

答案 1 :(得分:0)

.each()方法用于遍历包含DOM元素的jQuery集合。如果要遍历普通数组或对象,则应使用$.each()函数。

$.each(data, function(index, item) {
    ...
}

此外,您对象中的属性是Department_IDDepartment_Description,而不是ValueText