以下是我从firebug获得的一些输出
<div id='div_undefined'>[{"Region":"AD","Date":"","ArticleID":"abc-345"}, {"Region":"CD","Date":"","ArticleID":"abc-345"}]</div>
你可以在那里看到JS Object数组并注意div_undefined。如果你看下面的功能,我知道我的对象是定义的,因为它正在打印出来。当我尝试访问ArticleID
时,为什么Items [0]返回undefined这是我的函数
中的代码function myFunc(Items){
var item = Items[0];
Write("<div id='div_" + item.ArticleID + "'>" + Items + "</div>");
}
答案 0 :(得分:6)
如果连接Items
产生此输出,那么它是字符串(包含JSON),您必须首先将其解析为JS数据结构(在本例中为数组):< / p>
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
。
您可能会发现此问题也很有用:Access / process (nested) objects, arrays or JSON正如Matt(以及其他问题)所述,如果您想调试您的代码,请使用{{1} }。