2011-12-15 69 views
0

我需要一个列表,当用户在上面的输入中键入一个字母时,列表显示以该字母开头的单词。因此,如果用户在输入中键入“a”,则会弹出一个下拉列表ul并显示以“a”,可能是“apple”或“artifact”开头的外部php页面中的单词。此外,如果用户键入“ab”,页面应显示以“ab”开头的所有单词。使用jquery/ajax填充外部页面上的无序列表?

我知道我必须以某种方式使用Jquery ajax从外部页面(这只是简单的列表中)获取数据,并根据用户输入的字母将特定数据插入到其他页面。我怎样才能做到这一点?

回答

0

如果这是从你的Ajax调用,这是返回字的数组回调,这样的事情应该工作

function ajaxComplete(listOfWords){ 
    var ul = $("<ul />"); 
    for(var i = 0; i < listOfWords.length; i++) 
     ul.append("<li>" + listOfWords[i] + "</li>"); 
    $("#someDiv").html(ul); 
} 
0

如果你可以控制你的外部页面,最简单的方法是修改它以返回JSON数据。然后,您可以立即使用jQuery UI自动完成功能。

http://docs.jquery.com/UI/Autocomplete

当字符串是使用[作为数据源参数]时,自动完成插件期望字符串以指向URL资源,将返回JSON数据。它可以位于同一台主机上或不同的主机上(必须提供JSONP)。请求参数“term”被添加到该URL。数据本身可以采用与上述本地数据相同的格式。

如果您无法修改该页面,则必须使用第三种类型的jQuery UI Autocomplete,它将回调传递给插件。然后,编写一个回调函数,将.get()的数据从您的其他页面解析出来。使用jQuery的DOM遍历方法很容易。