1

我正在使用 jQuery UI 创建一个自动完成搜索栏,

我正在尝试修改以下内容以根据页面上元素的 ID 名称填充可用标签列表,

var availableTags = [
            "ActionScript",
            "AppleScript",
            "Asp",
            "BASIC",
        ];

例如在页面上,我会有一个元素,如

<div class="items" id="Get milk">Don't forget to get milk on way home from work</div>

一旦列表填充了这些元素 id 并且特定的 id 自动完成,我将设置所有其他元素display: none;

4

1 回答 1

0

您将需要使用$("...").map将您的源类数组对象(在本例中为填充有与您的.items选择器匹配的 DOM 节点的 jQuery 对象)转换为 jQueryUI 自动完成可以使用的数组。像这样的东西应该工作:

var source = $(".items").map(function () {
    return $(this).data("id");
}).get();

$("#auto").autocomplete({
    source: source        
});

假设您使用的是data-id属性,那么您的标记将如下所示:

<div class="items" data-id="Get Milk">Get Milk on the way home</div>
<div class="items" data-id="Drop by Phil's">Drop by Phils house</div>
<div class="items" data-id="Grab a Sandwich">Grab a sandwich</div>

示例:http: //jsfiddle.net/J5rVP/25/

于 2012-12-17T17:02:07.460 回答