【发布时间】:2020-08-15 23:27:30
【问题描述】:
希望有人能帮忙。这个小项目的目标是搜索电影数据库 OMDB,并在搜索栏下方显示获取的结果。当我尝试对返回的结果使用 forEach 循环时,我感觉代码会中断,但我找不到错误。感谢您的每一次帮助!谢谢!
var httpRequest = new XMLHttpRequest();
httpRequest.onload = function() {
if (httpRequest.readyState === XMLHttpRequest.DONE) {
if (httpRequest.status === 200) {
var response = JSON.parse(httpRequest.responseText).Search;
var body = document.getElementsByTagName("body");
response.forEach(function (element, index) {
body.appendChild(" <img src="+element[index].Poster+"/>" +
"<p>Title: <a href = 'https://www.imdb.com/title/"+element[index].imdbID+"' >" +element[index].Title+ "</a></p>" +
"<p>Year: "+ element[index].Year+"</p>" +
"<p>Type: "+element[index].Type+"</p>");
});
} else {
console.log(httpRequest.statusText);
}
}
};
httpRequest.onerror = function() {
console.log(httpRequest.statusText);
};
var searchMovie = function () {
var input = document.querySelector('input').value;
if (input) {
httpRequest.open('GET', 'https://www.omdbapi.com/?s=' + input + '&plot=short&apikey=b7da8d63');
httpRequest.send(null);
}
};
【问题讨论】:
-
document.getElementsByTagName()返回节点列表而不仅仅是一个节点,因此您需要获取第一个是 body 元素,最好使用.querySelector("body")甚至document.body -
如果您可以发布您看到的错误,将会很有帮助。
标签: javascript json api foreach