【问题标题】:Push items in an array after ajax postbackajax回发后将项目推送到数组中
【发布时间】:2014-11-12 09:34:35
【问题描述】:

我的 .cshtml 页面上有这个脚本

$(function () {
        var tempArray = [];
        var tbValue = $('#tb1').val();
        $.ajax({
            url: "/ControllerName/getdata",
            dataType: 'json',
            data: { strText: tbValue },
            success: function (Data) {
                $.each(Data, function (index, value) {
                    tempArray.push(value.Name);
                });

                $("#tb1").autocomplete({
                    source: tempArray,
                    minLength: 0
                });
            },
            error: function (xhr, ajaxOptions, thrownError) {
                console.log(xhr.status);
                console.log(xhr.responseText);
                console.log(thrownError);
                alert("failure");
            }

        });

    });

现在在 ajax 调用之后,我得到了Data 中的对象列表,就像这样

我在每个循环中得到以下 indexvalue 的值

当我尝试在每个循环内的tempArray 中推送数据时,问题就出现了。

我的数组中有未定义的项目,它来自每个循环。如何在数组中添加项目?

注意:控制台日志中没有错误,我正在使用 MVC3。

【问题讨论】:

  • 收到的实际数据是什么? 在问题中包含来自网络监视器的相关示例 JSON作为文本(不是图像)。从报告的图像和值来看,似乎有一个 outer 包装器数组/对象。
  • 另外,将 tempArray 移入成功回调以提高代码清晰度(它在外部没有任何作用) - 在 AJAX 中分配或改变共享对象几乎永远不会正确处理程序并导致许多不正确的用法。
  • @user2864740:我得到了这个值Data: Array[12] 0: Object Class: 1 Id: 1 Name: "Amit " Section: "A",并尝试在成功中采用tempArray
  • @downvoters: cmets plzz..?
  • 这不是所要求的。从网络监视器提供实际示例 JSON,作为文本

标签: javascript jquery arrays ajax


【解决方案1】:

试试这个。

$.each(Data.Data, function (index, value) {
    tempArray.push(value.Name);
});

您的 Ajax 返回变量“Data”是 Object

Data = {Data:[array maybe has 12 size]}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-10
    • 1970-01-01
    • 2020-04-02
    相关资源
    最近更新 更多