Javascript 自动完成搜索中的建议框不';不出现
我想使用该服务创建一个自动完成的输入框。我试图做的是创建一个ajax请求来返回结果。 通过输入地址的几个字母,光子API将显示结果,如图所示: 我写了以下内容: htmlJavascript 自动完成搜索中的建议框不';不出现,javascript,html,jquery,api,search,Javascript,Html,Jquery,Api,Search,我想使用该服务创建一个自动完成的输入框。我试图做的是创建一个ajax请求来返回结果。 通过输入地址的几个字母,光子API将显示结果,如图所示: 我写了以下内容: html js $(“#搜索框”).keyup(函数(){ $.ajax({ 键入:“获取”, url:“http://photon.komoot.de/api/?q=“+$(“#搜索框”).val(), beforeSend:function(){ $(“#搜索框”).css(“背景”,“#FFF url(LoaderIcon.
js
$(“#搜索框”).keyup(函数(){
$.ajax({
键入:“获取”,
url:“http://photon.komoot.de/api/?q=“+$(“#搜索框”).val(),
beforeSend:function(){
$(“#搜索框”).css(“背景”,“#FFF url(LoaderIcon.gif)无重复165px”);
},
成功:功能(结果){
var=结果。特征;
var aOptions=[];
对于(i=0;i
API调用非常有效,但我的建议框没有出现。。我做错了什么?不能使用
html()
函数直接添加对象。您只能传递string
因此,您需要将对象数组解析为string
$(“#搜索框”).keyup(函数(){
$.ajax({
键入:“获取”,
url:“https://photon.komoot.de/api/?q=“+$(“#搜索框”).val(),
beforeSend:function(){
$(“#搜索框”).css(“背景”,“#FFF url(LoaderIcon.gif)无重复165px”);
},
成功:功能(结果){
var=结果。特征;
var aOptions=[];
设htmlVal='';
对于(i=0;i `;//将每个值添加到htmlVal
}
$(“#建议框”).show();
$(“#建议框”).html(htmlVal);
$(“#搜索框”).css(“背景”,“#FFF”);
}
});
});代码>
我使用$(“#建议框”).html(aooptions);我可以使用哪个css创建列表?
<div class="frmSearch">
<input type="text" id="search-box" placeholder="Country Name" />
<div id="suggesstion-box"></div>
</div>
$("#search-box").keyup(function(){
$.ajax({
type: "GET",
url: "http://photon.komoot.de/api/?q=" + $("#search-box").val(),
beforeSend: function(){
$("#search-box").css("background","#FFF url(LoaderIcon.gif) no-repeat 165px");
},
success: function(results){
var aList = results.features;
var aOptions = [];
for (i=0; i < aList.length; i++) {
optKey = aList[i].geometry.coordinates[0]+','+aList[i].geometry.coordinates[1];
optLabel = aList[i].properties.name+', '+aList[i].properties.street+' '+aList[i].properties.housenumber+', '+
aList[i].properties.city+', '+aList[i].properties.postcode;
aOptions.push({
"value": optKey,
"label": optLabel
});
}
$("#suggesstion-box").show();
$("#suggesstion-box").html(aOptions);
$("#search-box").css("background","#FFF");
}
});
});