Xhr多个请求javascript

时间:2016-04-02 19:12:52

标签: javascript html

我使用以下脚本从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中的信息。想象一下将从电影列表中显示特定电影信息的电影数据库。

2 个答案:

答案 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)。看一下使用类。