У меня есть многоселочный вход ChosenJS, где я получаю параметры динамически через AJAX:
$("#offer_tags").chosen({
max_selected_options: 30,
max_shown_results: 30,
});
$("#offer_tags_chosen input").autocomplete({
minLength: 3,
source: function( request, response ) {
$.ajax({
url: "/common/offer_tags?search="+request.term,
dataType: "json",
beforeSend: function(){}
}).done(function( data ) {
response(
$('#offer_tags_chosen ul.chosen-results').each(function () {
console.log(this);
}),
$('#offer_tags').append('<option>' + request.term + '</option>'),
$.map( data, function( item ) {
$('#offer_tags').append('<option value='+ item.id +'>' + item.name + '</option>');
})
);
$("#offer_tags").trigger("chosen:updated");
});
}
});
В настоящий момент все выглядит нормально, но я хотел бы удалить невыбранные варианты перед новыми опциями
До сих пор моя идея состояла в том, чтобы получить доступ к ul.chosen-results
и затем удалить все li.active-results
С помощью этого куска кода
$('#offer_tags_chosen ul.chosen-results').each(function () {
console.log(this);
})
Я могу получитьul.chosen-results
в моей консоли:
<ul class="chosen-results">
<li class="active-result" data-option-array-index="0" style="">myvalue</li>
<li class="active-result" data-option-array-index="1" style="">othervalue</li>
<li class="active-result" data-option-array-index="2" style="">thirdvalue</li>
</ul>
однако, когда я пытаюсь получить доступ к children
с чем-то вроде этого:
$('#offer_tags_chosen ul.chosen-results').each(function () {
console.log($(this).children());
})
, это дает мне это:
w.fn.init [li.no-results, prevObject: w.fn.init(1)]
0: li.no-results
length: 1
prevObject: w.fn.init [ul.chosen-results]
__proto__: Object(0)
Что я делаю не так, пожалуйста?Как удалить параметры, которые не были выбраны до добавления новых параметров?Мне нужно сохранить выбранные варианты на месте - без удаления.
Обновление
Мой HTML выглядит следующим образом:
<div class="chosen-container chosen-container-multi" style="width: 936px;"
title="" id="offer_tags_chosen">
<ul class="chosen-choices">
<li class="search-field">
<input type="text" value="Please, select (multiple allowed)"
class="default ui-autocomplete-input" autocomplete="off"
style="width: 215.387px;">
</li>
</ul>
<div class="chosen-drop">
<ul class="chosen-results">
<li class="active-result" data-option-array-index="0" style="">myvalue</li>
<li class="active-result" data-option-array-index="1" style="">othervalue</li>
<li class="active-result" data-option-array-index="2" style="">thirdvalue</li>
</ul>
</div>
</div>
console.log($(this).children().get());
даетя:
[li.no-results]
0: li.no-results
length: 1
__proto__: Array(0)