リストにコンテンツを動的に追加していますが、重複の追加を防止できるようにしたいと考えています。したがって、コンテンツを追加する前に、すべてのリストを選択し、配列を作成して、追加するデータがまだリストに含まれていないことを確認します。ただし、コードで予期しない識別子を取得します。これは私のコードです:
$(".autocomp_centers").autocomplete({
var ids = new Array();
$("#sister-centers-list > li").each(function(index, value){
ids.push($(value).attr('class'));
console.log($(value).attr('class'));
});
serviceUrl:'/suggest_centers',
maxHeight:400,
width:252,
params: {country: $("#country").val() },
minChars:2,
onSelect: function(value, data){
if ($.inArray(data, ids) == -1){
alert("Sister center has already been added.");
}else{
$("#hidden-ids").append('<input type="hidden" name="center_ids[]" value="' + data +'" class="center-' + data + '"/>');
$('#sister-centers-list').append('<li class="center-' + data + '">' + value + ' <a href="#sister-center" class="remove-center-before-save" id="' + data + '">Remove</a></li>');
}
$("#sister-search").val("");
}
});
ユーザーが入力を開始してこのメソッドが呼び出されると、リストの値を取得して配列に格納します。彼らが値を選択するとき、その値がすでに配列にあるかどうかを確認します。これは、エラーの原因となる行です。var ids = new Array();