如何将项目添加到jQuery中的阵列?(How do I add items to an array

2019-08-03 03:23发布

var list = [];
$.getJSON("json.js", function(data) {
    $.each(data, function(i, item) {
        console.log(item.text);
        list.push(item.text);
    });
});
console.log(list.length);

list.length总是返回0。我浏览过的JSON的萤火虫,它的形成很好,一切都看起来很好。 我似乎无法将项目添加到阵列中我失去了什么?

Answer 1:

由于$.getJSON是异步的,我觉得你console.log(list.length); 已被填充您的阵列之前的代码发射。 要纠正此把你console.log陈述你的回调中:

var list = new Array();
$.getJSON("json.js", function(data) {
    $.each(data, function(i, item) {
        console.log(item.text);
        list.push(item.text);
    });
    console.log(list.length);
});


Answer 2:

您正在一个Ajax请求是异步的,因此Ajax请求完成之前发生的名单长度的控制台日志。

实现你想要什么的唯一方法是改变Ajax调用是同步的。 假然而,这并不推荐,因为它锁定用户接口直到调用返回,如果失败,返回用户有碰撞出的浏览器:您可以通过使用阿贾克斯和传递非同步执行此操作。



Answer 3:

希望对你有帮助..

var list = [];
    $(document).ready(function () {
        $('#test').click(function () {
            var oRows = $('#MainContent_Table1 tr').length;
            $('#MainContent_Table1 tr').each(function (index) {
                list.push(this.cells[0].innerHTML);
            });
        });
    });


文章来源: How do I add items to an array in jQuery?