#javascript
#javascript
Вопрос:
У меня есть button
значение false / true для другого элемента выбора html.
При нажатии кнопки я хочу, чтобы элемент выбора заполнялся некоторыми значениями — поэтому я использовал этот код для этой цели:
if ($('#make_a_choose').css("display") !== 'none') {
var select = document.getElementById("myselect_id");
var options = ["1", "2", "3", "4", "5"];
for(var i = 0; i < options.length; i ) {
var opt = options[i];
var el = document.createElement("option");
el.textContent = opt;
el.value = opt;
select.appendChild(el);
}
}
Однако, когда я переключаю кнопку и снова выбираю true, у меня их вдвое (втрое …) больше, потому что это просто добавляет значения, даже если они уже представлены.
Поэтому я решил удалить элементы, когда кнопка make_a_choose снова отключится (как ложное состояние). У меня есть такой код для этого:
if ($('#make_a_choose').css("display") === 'none') {
var selectobject=document.getElementById("myselect_id");
var slenght = selectobject.length;
for (var i=1; i<slenght; i ){
selectobject.remove(i);
}
}
Проблема в том, что этот код не удаляет все поля выбора, некоторые из них не удаляются. Я полагаю, это может быть связано с тем, что var slenght = selectobject.length
динамически изменяется во время обработки цикла. Я использую i = 1 в качестве начального значения, потому что я не хочу, чтобы значение выбора по умолчанию удалялось, однако, если я использую i = 0, эта проблема все еще сохраняется.
Может кто-нибудь посоветовать, как это исправить?
Ответ №1:
Попробуйте это, пожалуйста!
$("#myselect_id").find('option').not(':first').remove();
Вместо:
for (var i=1; i<slenght; i ){
selectobject.remove(i);
}
Комментарии:
1. Спасибо за ваш ответ. Я пробовал это, но, похоже, это удаляет только единственный вариант. У меня не работает:(
2. Опубликуйте код с помощью HTML, и я смогу вам помочь. 😉
3. jsfiddle.net/utkyv4jw просто нажмите несколько раз на кнопку, и вы увидите эффект. 🙂
4. jsfiddle.net/gwt2om59 вот оно, решение, я надеюсь вам помочь.
5. Отлично! Это работает! Большое вам спасибо. Ценю вашу поддержку!