我得到“无法读取未定义的属性'长度”for:
success: function(data) {
for(i = 0; i < data.length; i++) {
var callData = data.query.search[i].title;
$("#results").html(JSON.stringify(callData));
}
由于我将data
传递给函数,因此不应在for循环中识别data.length
吗?对于上下文我正在进行AJAX调用。
答案 0 :(得分:1)
在大多数情况下,这意味着data
可能是null
或undefined
。
但是你有不同的情况:你的数据是一个对象,而不是一个集合,所以它没有长度属性。
您正在迭代data.query.search
集合,但您正在检查data
长度
success: function(data) {
if(!data.query.search) { return; } // check if collection is present
for(i = 0; i < data.query.search.length; i++) {
var callData = data.query.search[i].title;
$("#results").html(JSON.stringify(callData));
}
}