jquery каждый элемент не определен - PullRequest
0 голосов
/ 05 сентября 2018

Мой 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>

с департаментом_дискассой и департаментом_идентификатором, чтобы их можно было использовать позже в программе.

Я не уверен, что означает эта ошибка или откуда она взялась. Любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 05 сентября 2018

Метод .each() используется для циклического просмотра коллекции jQuery, содержащей элементы DOM. Если вы хотите перебрать обычный массив или объект, вы должны использовать функцию $.each().

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

Кроме того, свойства в ваших объектах Department_ID и Department_Description, а не Value и Text.

0 голосов
/ 05 сентября 2018

Я думаю, ваш код должен быть:

select.append($("<option>").val(item.Department_Id).text(item.Department_Description));
                    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...