0

这是我从 firebug 获得的一些输出

<div id='div_undefined'>[{"Region":"AD","Date":"","ArticleID":"abc-345"},    {"Region":"CD","Date":"","ArticleID":"abc-345"}]</div>

您可以在其中看到 JS 对象数组并注意 div_undefined。如果您查看下面的功能,我知道我的对象已定义,因为它正在打印出来。为什么当我尝试访问 ArticleID 时 Items[0] 会返回 undefined

这是我的函数中的代码

function myFunc(Items){
    var item = Items[0];
    Write("<div id='div_" + item.ArticleID + "'>" + Items + "</div>");
}
4

1 回答 1

6

如果连接Items产生此输出,那么它是一个字符串(包含 JSON),您必须先将其解析为 JS 数据结构(在本例中为数组):

function myFunc(Items){
    Items = JSON.parse(Items);
    var item = Items[0];
    Write("<div id='div_" + item.ArticleID + "'>" + Items + "</div>");
    // Will output
    // <div id='div_abc-345'>[object Object], [object Object]</div>
}

理想情况下,您会在将值传递给函数之前执行此操作。我不知道你在追求哪个输出,所以我只能提供建议。


否则,Items[0]指的是字符串的第一个字母(也是一个字符串)并且字符串没有ArticleID属性,因此你得到undefined.


您可能会发现这个问题也很有帮助:访问/处理(嵌套)对象、数组或 JSON正如马特(以及在另一个问题中)所提到的,如果您想调试代码,请使用console.log.

于 2013-01-15T23:32:52.237 回答