Я пишу следующий JavaScript, который собирается удалить некоторые опции из списка выбора:Как удалить параметры из списка выбора, не влияя на индекс?
var selectobject = document.getElementById("Approver_90afaad9-2b54-46fb-8ac1-7374e4efa11e_$DropDownChoice");
for (var i = 0; i < selectobject.options.length; i++) {
var isCM = false;
for (var ii = 0; ii < assets.length; ii++) {
if (assets[ii].Title == selectobject.options[i].value) {
isCM = true;
}
}
if (isCM == false) {
selectobject.remove(i);
}
}
но проблема я столкнулся в том, что в том, что при удалении параметра с помощью selectobject.remove(i);
затем i
индекса внутри selectobject
будет изменен, так есть ли способ сохранить исходный индекс после selectobject.remove(i);
?? Я попытался скопировать selectobject
внутри нового var
, но все-таки я столкнулся с таким же вопросом ...
Спасибо
Что касается использования 'splice()'? –
Я предполагаю, что часть проблемы заключается в том, что при изменении индекса элементы в поле выбора пропускаются. Одним из способов противодействия этому является обратный цикл, т. Е. 'For (var i = selectobject.options.length; i> = 0; i -)'. Таким образом, элементы, затронутые изменением индекса, уже обработаны. –
@Vilas splice() в моем случае не удаляли опции –