即使未调用,JQuery未定义的对象属性仍会导致错误

时间:2013-09-16 17:37:59

标签: javascript jquery

我正在迭代api对象,某些结果没有特定的属性。如果属性丢失,我用它来制作一个占位符:

if (data.track[i].image == undefined) {
    urlstring = "path/to/image";
} else {
  urlstring = data.track[i].image[4][0];
}

不幸的是,我仍然得到错误Uncaught TypeError: Cannot read property '0' of undefined,即使未定义属性也不应触发else子句。

1 个答案:

答案 0 :(得分:0)

您的问题是data.track[i].image[4]undefined,而您的代码似乎需要一个数组。

您可以使用

if (data.track[i].image && data.track[i].image[4]) {
    urlstring = data.track[i].image[4][0];
} else {
    urlstring = "path/to/image";
}

注意:我认为data.track[i]data.toptracks.track[i]之间的混合是问题的假象。