0

我的 HTML 中有多个如下标签。

<li data-code="ABC"
<li data-code="XYZ"
<li data-code="PQR"

我需要将这三个值添加到剑道自动完成框中。

<input id='myKendobox'/>

我使用下面的代码来获取列表。

var items = $("li").map(function () { return $(this).attr("data-code"); }).get();

我有两个问题:如何确保第四个空项目不在“项目”列表中?如何填充剑道自动完成框中的项目?

4

1 回答 1

1

你的li项目没有关闭,你意识到了吗?

要填充自动完成,您可以执行以下操作:

给定输入 HTML(自动完成):

<input id='myKendobox'/>

和初始化如下:

var data = [];
var autocomplete = $("#myKendobox").kendoAutoComplete({
    dataSource: data
}).data("kendoAutoComplete");

当你想添加你做的元素时:

var items = $("li").map(function () { return $(this).attr("data-code"); }).get();
autocomplete.dataSource.data(items);

如果要限制<li>jQuery 选择器找到的元素,可以将它们定义为:

<ul id="AutocompleteOptions">
    <li data-code="ABC"></li>
    <li data-code="XYZ"></li>
    <li data-code="PQR"></li>
</ul>

然后将选择器更改为:

var items = $("li", "#AutocompleteOptions").map(function () { return $(this).attr("data-code"); }).get();

这将<li>找到的仅限于#AutocompleteOptions.

在JSFiddle中运行的示例

于 2013-04-19T08:16:05.027 回答