我使用以下脚本从html请求中读取信息。
function runSearch(searchid, fullMovie) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == XMLHttpRequest.DONE) {
var fullMovie = JSON.parse(xhr.responseText);
var movie = { title: fullMovie.Title, runtime: fullMovie.Runtime, plot: fullMovie.Plot };
document.getElementById('Title').innerText = movie.title;
document.getElementById('Runtime').innerText = movie.runtime;
document.getElementById('Plot').innerText = movie.plot
}
};
xhr.open('GET', 'http://www.omdbapi.com/?i=' +searchid+ '&plot=short&r=json', true);
xhr.send(null);
}
如何更改xhr.open
中的searchid以使用id="searchid"
代码中的div
?
<div>
<div id="tt0110912">
<h1 id="Title">Title from tt00110912</h1>
<p id="Runtime">Runtime from id</p>
<p id="Plot">Plot from id</p>
</div>
</div>
<br>
<div>
<div id="tt3322364">
<h1 id="Title">Title from tt3322364</h1>
<p id="Runtime">Runtime from id</p>
<p id="Plot">Plot from id`enter code here`</p>
</div>
</div>
是否可以使用不同的xhr请求多次运行此脚本?如果可能,我该怎么做?
编辑:无法使代码工作!理论上,我需要代码根据div id类生成xhr请求,并使用该id的xhr响应填充div中的信息。想象一下将从电影列表中显示特定电影信息的电影数据库。答案 0 :(得分:0)
将代码包装到函数中,然后循环调用或手动调用几次searchid
值。
function runSearch(searchid, fullMovie) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == XMLHttpRequest.DONE) {
var fullMovie = JSON.parse(xhr.responseText);
var movie = { title: fullMovie.Title, runtime: fullMovie.Runtime, plot: fullMovie.Plot };
document.getElementById('Title').innerText = movie.title;
document.getElementById('Runtime').innerText = movie.runtime;
document.getElementById('Plot').innerText = movie.plot
}
};
xhr.open('GET', 'http://www.omdbapi.com/?i=' + searchid + '&plot=short&r=json', true);
xhr.send(null);
}
然后这样称呼:
runSearch('your search id', fullMovie);
答案 1 :(得分:0)
<div id="runSearch('tt0110912', fullMovie)">
JavaScript需要进入脚本元素(或内部事件属性,但它们很糟糕,应该避免)。
id
属性是您为元素添加标识符的位置。它不是JavaScript,将JavaScript放在那里是没有意义的。
<script>
runSearch('tt0110912', fullMovie)
</script>
您的HTML无效。 id
在文档中必须是唯一的。您无法在同一文档中重复使用if Title
(etc)。看一下使用类。