首页 > 解决方案 > 数组列表在线显示来自json的一个结果

问题描述

我写了这段代码,它可以工作:

function getJsonResult(retrieve) {
  var result = retrieve.results;     
  for (var i = 0; i < result.length; i++) {
    responseJson.push({ id: result[i].id, title: result[i].title });
    var search = '<a id="' + result[i].id + '">' + result[i].title + '</a><br/>';
    document.write(search);
  } 
}

当我尝试在 div 中显示结果时,我将最后一行更改为:

$("#divId").html(search);

但它只显示第一个结果。如何使整个列表出现?

标签: javascriptjqueryarraysjson

解决方案


发生这种情况是因为您search在每次迭代中都覆盖了变量:

var search = '<a id="' + result[i].id + '">' + result[i].title + '</a><br/>';

您需要search在循环之外声明变量,然后在每次迭代中附加字符串,例如:

function getJsonResult(retrieve) {
  var result = retrieve.results;  
  var search = "";
  ___________^^^^
  for (var i = 0; i < result.length; i++) {
    responseJson.push({ id: result[i].id, title: result[i].title });
    var search += '<a id="' + result[i].id + '">' + result[i].title + '</a><br/>';
    ___________^^
    document.write(search);
  } 
}

然后最后你可以把你的变量内容放到 div :

$("#divId").html(search);

推荐阅读