gpt4 book ai didi

javascript - 搜索结果不会自动显示

转载 作者:行者123 更新时间:2023-12-03 03:49:41 24 4
gpt4 key购买 nike

我通过 giphy API 构建了一个 Giphy Gif 搜索应用程序,每次当我尝试在搜索文本中输入新内容时它都能正常工作,并且除非重新加载页面,否则新的搜索结果不会弹出。

HTML代码如下:

<html>
<head>
<title>My Giphy Search App</title>


<style>
.container-image {
width: 30%;
display: inline-block;
float: left;
margin-right:3%;
}
</style>
</head>
<body>
<div class="container container-padding50">
<input type="text" class="js-userinput container-textinput" placeholder="refresh the page if you wanna searching more">

<button class="js-go container-button">Go!</button>
</div>
<div class="js-container">
</div>
<script src ="javascript/main.js"></script>

</body>

main.js中的js代码文件为:

document.querySelector(".js-go").addEventListener("click",function(e){
var input = document.querySelector("input").value;
searchGiphy(input);
});
document.querySelector(".js-userinput").addEventListener("keyup",function(e){
var input = document.querySelector("input").value;
if(e.which == 13){
searchGiphy(input);
}
});
function searchGiphy(searchResult){

var url = "http://api.giphy.com/v1/gifs/search?api_key=dc6zaTOxFJmzC&q=" + searchResult;
var GiphyAJAXCall = new XMLHttpRequest();
GiphyAJAXCall.open("GET",url);
GiphyAJAXCall.send();

GiphyAJAXCall.addEventListener("load",function(e){
var data = e.target.response;
pushToDOM(data);
});
}
function pushToDOM(input){
var response = JSON.parse(input);

var imageUrls = response.data;
var container = document.querySelector(".js-container");

imageUrls.forEach(function(image){

var src = image.images.fixed_height.url;
container.innerHTML += "<img src=\"" + src + "\" class=\"container-image\">";

});
}

我粘贴了上面所有的js代码,想知道我在这里的ajax调用是不是错了?有人可以帮我解决这个问题吗?

最佳答案

您将结果附加到当前 html 的末尾,而不是替换已有的结果。相反,使用另一个变量来构建您正在构建的新 html 字符串,然后在完成后用新字符串替换容器的innerHTML。

function pushToDOM(input){
var response = JSON.parse(input);
var imageUrls = response.data;
var container = document.querySelector(".js-container");
var html = "";

imageUrls.forEach(function(image){
var src = image.images.fixed_height.url;
html += "<img src=\"" + src + "\" class=\"container-image\">";
});
container.innerHTML = html;
}

关于javascript - 搜索结果不会自动显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45222378/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com