jQuery foreach Obj



我有一个ajax函数,可以获取数据库中的所有数据...

但是,当我尝试执行.each函数时,它说result.each不是函数。

这是我的代码。

我的阿贾克斯的结果:

[
{"UnitID":"1","Description":"sample1","Status":"1"},   
{"UnitID":"2","Description":"sample 2","Status":"1"}
]

j查询代码:

function PopulateTable(table){
var $this = $(table);
var $url = $this.data('url');
 $.ajax({
    url: $url,
    type: 'POST',
    success: function(result) {
        console.log(result);
        result.each(function(k, v){
        console.log(k + " " + v);
        });
    }
 });
}

不知道这怎么了..提前感谢...

jQuery针对不同的用途定义了两次.each()

  • .each()方法仅适用于jQuery元素集合。

  • 但是,jQuery.each()函数可以与任何集合或对象一起使用。

由于result是一个Array,您需要使用后一种形式进行迭代,并将其作为参数提供:

success: function(result) {
    console.log(result);
    jQuery.each(result, function(k, v){
        console.log(k + " " + v);
    });
}

旁注:如果您在日志中看到[object Object]...

每次迭代中的v将引用数组中的一个对象,上面的字符串是将对象转换为字符串时给出的默认输出,+将为您做。

要显示来自对象的信息,您可以访问其属性:

jQuery.each(result, function (k, v) {
    console.log(k + ' ' + v.UnitID + ' ' + v.Description);
});

此外,在许多环境/浏览器中,当您将对象作为单独的参数提供时,控制台将自动格式化其所有内容或将其显示为交互式树菜单:

console.log(k, v);

最新更新