Javascript 在web应用程序中的新搜索上重新加载搜索结果(不带jQuery)
我有一个简单的web应用程序,它使用API从数据库返回搜索结果,并使用ajax将结果插入页面上的空ul元素中。在跨域请求中使用JSONP 我不知道如何使用javascript,我发现的所有地方都使用jQuery。我希望能够让他们输入另一个搜索词,并有它清除现有的内容从网页上Javascript 在web应用程序中的新搜索上重新加载搜索结果(不带jQuery),javascript,html,ajax,api,Javascript,Html,Ajax,Api,我有一个简单的web应用程序,它使用API从数据库返回搜索结果,并使用ajax将结果插入页面上的空ul元素中。在跨域请求中使用JSONP 我不知道如何使用javascript,我发现的所有地方都使用jQuery。我希望能够让他们输入另一个搜索词,并有它清除现有的内容从网页上 当前,如果您进行第二次搜索,它只会将新结果附加到现有列表的底部。一旦您使用AJAX从API调用返回了内容,您就可以将其分配给ul或div,例如document.getElementById'YouruId'。innerHTM
当前,如果您进行第二次搜索,它只会将新结果附加到现有列表的底部。一旦您使用AJAX从API调用返回了内容,您就可以将其分配给ul或div,例如document.getElementById'YouruId'。innerHTML=您从vanilla.js的AJAX调用中获得的内容:
如果我明白你想要什么。您希望从服务器获取结果,并将其插入网页的ul表单字段中。 这只是一个例子,可能会有所帮助
function createRequest(){
try{
request = new XMLHttpRequest();
}catch (tryMS){
try{
request = new ActivXObject("Msxml2.XMLHTTP");
}catch (otherMS){
try{
request = new ActivXObject("Microsoft.XMLHTTP");
}catch (failed){
request = null;
}
}
}
return request;
}
function loggin(user_id,password){
request = createRequest();
data = new FormData();
data.append('user_id',user_id.value);
data.append('password',password.value);
request.onreadystatechange=function(){
if(request == null){
alert('Unable to connect');
}else{
if(request.readyState==4){
if(request.status==200){
if(request.responseText){
document.location.href = request.responseText;
}
}
}
}
}
这将创建和HTTP请求。将数据发布到服务器,然后获取结果并将其返回到javascript,然后直接返回到网页。使用request.responseText追加/插入到相应的字段当搜索字段出现onsubmit时,我使用了几行简单的html来解决这个问题:
var div = document.getElementById('cart_item');
while(div.firstChild){
div.removeChild(div.firstChild);
}
我已经让这部分工作,但如果他们进行第二次或第三次etc搜索而不重新加载页面,它只会向我的ul添加越来越多的列表项。我需要一种方法来清除它并在每次用户进行搜索时重新加载。您应该使用document.getElementById'YourULID'.innerHTML=检查返回结果的API代码,因为我们正在分配innerHTML,它应该简单地替换它。我想你的API可能会返回附加的结果。当onsubmit发生时,我使用了几行简单的HTML来解决这个问题:var clear=document.getElementById'list';whileclear.firstChild{clear.removeChildclear.firstChild;}我已经使用JSONP构建了这个应用程序。一切正常。然而,我遇到的问题是,当进行第二次、第三次或更多搜索时,它只会将它们添加到我的列表中。我希望每次进行搜索时都能清除ul。
var div = document.getElementById('cart_item');
while(div.firstChild){
div.removeChild(div.firstChild);
}