我有一个脚本,允许使用Javascript检索Google建议(XML)并以纯HTML格式输出:
<input id='inp' /> <select id='sug' />
<script type='text/javascript'>
function el(tid) {return document.getElementById(tid);}
function addScript(u){
var head=document.getElementsByTagName('head')[0],
sc2=document.createElement('script'); sc2.src=u;
head.appendChild(sc2);
setTimeout(function(){ head.removeChild(sc2); sc2=null;}, 20000)
}//end addScript()
function suggest(data){
var sel=el("sug").options; sel.length=0;
data[1].map(function(a){return a[0];}).map(function(a,b){
sel[b]=new Option(a);
});
sel.size=data[1].length;
}//end suggeest()
el("inp").onkeyup=function(){
addScript("http://www.google.nl/complete/search?callback=suggest&q="+this.value);
}
正如您所见,XML数据现在是一个选择选项列表。我的问题:如何在ul ---&gt; li HTML而不是select选项列表中获取此信息。
答案 0 :(得分:1)
AFAIK没有标准的DOM对象来表示ul / li
所以你的“OO”方式不起作用......但是,以下似乎可以在我的FireFox浏览器中运行:在html正文中有一个像<的列表/ p>
<ul id='test'>
<li>test</li>
</ul>
并在JavaScript中将suggest
函数替换为此
function suggest(data){
var sel=el("test"); sel.innerHTML='';
data[1].map(function(a){return a[0];}).map(function(a,b){
sel.innerHTML += '<li>'+a+'</li>';
});
}
BTW在select
元素之前添加列表或将其写为
<select id='sug'></select>
<ul id='test'>
<li>test</li>
</ul>
(即select使用正确的结束标记写入)否则列表将不会显示在页面
中修改强> 似乎在IE中工作的版本
function suggest(data){
var sel=el("test"); sel.innerHTML='';
for(x=0; x<data[1].length;x++){
sel.innerHTML += '<li>'+data[1][x][0]+'</li>';
}
}