我正在与autocomplete
合作并且它的表现非常出色,但我似乎无法删除已经选择的值。我试过alert(usedTags)
,它肯定会将信息存储在usedTags
中。我也试过了alert($(availableTags).not(usedTags).get());
,它向我展示了我应该看到的差异......但是当我尝试添加另一个值时,它仍然向我展示了整个availableTags
数组。添加源代码时是否有一些我缺失的内容?仅在第一个autocomplete
上打开函数时才添加源?如果是这样,我每次添加值时如何更新...谢谢!
$(function() {
var availableTags = [
"jimmy",
"barbie",
"belle",
"dylan",
"tony",
"lonnie"
];
var usedTags = [];
$("#labels").autocomplete({
source: $(availableTags).not(usedTags).get(),
minLength: 2,
select: function(e, ui){
e.preventDefault();
$("<span class = 'added' id = '"+ ui.item.id + "'>").html( ui.item.value).appendTo($(this).parent().find('.addvals'));
usedTags.push(ui.item.value);
$(this).val('');
//alert(usedTags);
//alert($(availableTags).not(usedTags).get());
}
});
});
修改
出于这个问题的目的,我已经简化了我的availableTags
数组,但我知道在数组中获取id会需要更复杂的数组。以防万一。“
答案 0 :(得分:0)
您可以使用Array.prototype.filter()
方法轻松完成此操作。
availableTags.filter(function(tag) {
return (usedTags.indexOf(tag) === -1);
});