javascript - 在循环中使用innerHTML无法正确显示json结果集

标签 javascript json

我使用 HTML onclick 事件调用一个函数,该函数将读取包含 JSON 语法的 Javascript 字符串并输出结果,但仅显示最后一个结果。

var resorts = '{ "skiResorts" : [' +
    '{ "resortName":"Afton Alps" , "resortState":"Minnesota" },' +
    '{ "resortName":"Alpine Way" , "resortState":"Pennsylvania" },' +
    '{ "resortName":"Alyeska" , "resortState":"Alaska" } ]}';
var obj = JSON.parse(resorts);

function displaySkiResorts() {
    //code
    for (i = 0; i < obj.length; i++) {
        document.getElementById("req8").innerHTML = obj.skiResorts[i].resortName + " " + obj.skiResorts[i].resortState;
    }
}

为什么这不显示整个滑雪场?

最佳答案

我更改了对数组长度的正确访问obj.skiResorts.length ,将分配更改为 +=并添加换行符 <br> .

var resorts = '{ "skiResorts" : [' +
         '{ "resortName":"Afton Alps" , "resortState":"Minnesota" },' +
         '{ "resortName":"Alpine Way" , "resortState":"Pennsylvania" },' +
         '{ "resortName":"Alyeska" , "resortState":"Alaska" } ]}';

var obj = JSON.parse(resorts);
function displaySkiResorts() {
    for (i = 0; i < obj.skiResorts.length; i++) { // obj.skiResorts.length right array
        document.getElementById("req8").innerHTML += obj.skiResorts[i].resortName + " " + obj.skiResorts[i].resortState + '<br>'; // += and <br> 
    }
}
displaySkiResorts();
<div id="req8"></div>

关于javascript - 在循环中使用innerHTML无法正确显示json结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35233186/

相关文章:

PHP 以 JSON 格式打印 SQL 查询

javascript - 在完全加载页面之前,加载栏隐藏在jsf中

javascript - 如何画双圆?

javascript - 三个 JS 创建自定义形状几何体

javascript - 从数据库调用动态填充选择标签选项

java - 通过 json 使用 java (eclipse) 从 MySQL-DB 检索字符串

javascript - 如何检查 props 中的元素是否匹配条件?

javascript - 跨浏览器兼容性

javascript - 使用 Javascript 和 PHP 将 JSON 存储为 CSV

json - 访问具有哈希结构的嵌套 JSON 文件