javascript - 无法通过 JavaScript 将 Json 解析为 Html
问题描述
我有以下称为 HTML 页面的 onload 的 JavaScript 函数,但我的数据没有被解析,也不能通过这个函数在 html 中写入任何内容:
function displaySearchResults(){
//link base para a realização de requests para a API
var requestBaseURL = "https://api.predicthq.com/v1/events?";
var startDate = "start.gte=" + sessionStorage.getItem("startDate") + "&";
var endDate = "start.lte=" + sessionStorage.getItem("endDate") + "&";
var eventType = "category=" + sessionStorage.getItem("eventType") + "&";
var countrySearch = "country=" + sessionStorage.getItem("countrySearch");
var requestURL = requestBaseURL + startDate + endDate + eventType + countrySearch;
var searchRequest = new XMLHttpRequest();
searchRequest.withCredentials = false;
searchRequest.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
var data = JSON.parse(this.responseText);
console.log(data);
//TODO parse data into lists with associated buttons
var result = data.results
var msg = ""
for (var i=0;i < result.length;i++) {
msg += ("<li>" + result[i].title + "</li>\n");
}
msg = "<li>END</li>"
document.getElementsById("searchResults").innerHTML=msg;
}
});
}
来自请求和 de END msg 的任何数据都不会传递到此 HTML 页面:
(...)
<script type="text/javascript" src="js/script.js"></script>
</head>
<body onload="displaySearchResults()">
<header id="header">
</header>
<div class="container">
<div class="row">
<h5>Resultados:</h5>
<ul id="searchResults">
</ul>
</div>
</div>
</body>
我试过在最后和body标签之后调用它,结果相同。如果它在加载时为什么没有出现任何内容,控制台也不会显示任何错误。
解决方案
尝试这个。它有一个按钮,单击时会在 dom 中呈现列表。
var data = {
results: [{
title: "title1"
}, {
title: "title2"
}, {
title: "title3"
}]
}
function LoadResult() {
var result = data.results
var msg = "<ul>"
result.forEach(s => {
msg = msg + "<li>" + s.title + "</li>"
})
msg = msg + "<li>END</li></ul>"
document.getElementById("result").innerHTML = msg;
}
<html>
<body>
<button onClick="LoadResult()">Load</button>
<div id="result">
</div>
</body>
</html>
推荐阅读
- javascript - 拍照并使用 CSS 和 java 脚本将其放在 html 文件中
- php - 从数组 PHP 中提取元素
- cloud - 雾计算环境下卸载决策与任务调度的区别
- oracle - 如何在约束中正确使用 REGEXP_LIKE
- html - 表单复选框状态未显示在 POST 请求(烧瓶)中
- spring - Spring boot 将接收到的 MultiPartFile 转发到 Feign Client
- keras - keras_history[0].supports_masking 做什么?
- java - 如何将数据带到另一个班级
- php - 致命错误:不支持的媒体类型:通过 php/graphaware 查询 neo4j
- reactjs - 无法在 Edge 浏览器中获取