JSON值打印为"未定义"在浏览器中

时间:2018-02-26 19:12:09

标签: javascript jquery json

我有一些JSON数据,我想用它来创建一个链接列表。 JSON对象中的键被渲染得很好,但是与这些键相对应的值会打印" undefined"在浏览器上。

var html = "<ul>";

$.ajax({
  url: fullpath,
  dataType: 'jsonp',
  success: function(data) {
    for (var pageid in data.query.pages) {
      console.log(pageid, pageid.title, pageid.extract);
      html += "<li><a href=\"" + wikisearchurl + pageid + "\" target=\"_blank\">" + pageid.title + '</br>' + pageid.extract + "</a></li>";
    }
    html += "</ul>";
    $('#para').html(html);
  }
});

Here's the output

点击链接会将我带到正确的页面,这意味着&#34; href&#34;属性设置得很好。问题仅在于链接文本。

1 个答案:

答案 0 :(得分:0)

由于您正在使用&#34;(对于x中的x)和#34;类似的循环,因此您可以清楚地循环遍历数组而不是对象。因此&#34; pageid&#34;对应于数组中每个元素的索引。

要访问数组中的元素,请改为使用:

data.query.pages[pageid].title

data.query.pages[pageid].extract

这应该会为您提供您想要获得的信息。