为什么我得到一个typeError属性'length'未定义?

时间:2017-09-19 09:37:08

标签: javascript jquery ajax

我得到“无法读取未定义的属性'长度”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调用。

1 个答案:

答案 0 :(得分:1)

在大多数情况下,这意味着data可能是nullundefined

但是你有不同的情况:你的数据是一个对象,而不是一个集合,所以它没有长度属性。

您正在迭代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)); 
   }
 }