Как очистить все параметры в раскрывающемся списке? - PullRequest
115 голосов
/ 29 июля 2010

Мой код работает в IE, но не работает в Safari, Firefox и Opera.(большой сюрприз)

document.getElementById("DropList").options.length=0;

После поиска я узнал, что ему не нравится length=0.
Я попробовал ...options=null и var clear=0; ...length=clear с тем жерезультат.

Я делаю это одновременно с несколькими объектами, поэтому я ищу какой-то легкий код JS.

Ответы [ 26 ]

1 голос
/ 14 февраля 2014
var select = document.getElementById('/*id attribute of your select here*/');
for (var option in select){
    select.remove(option);
}
1 голос
/ 02 июля 2015

Над кодом ответа нужно внести небольшие изменения, чтобы завершить список, пожалуйста, проверьте этот фрагмент кода.

var select = document.getElementById("DropList");
var length = select.options.length;
for (i = 0; i < length;) {
  select.options[i] = null;
  length = select.options.length;
}

обновите длину, и он удалит все данные из выпадающего списка.Надеюсь, это кому-нибудь поможет.

0 голосов
/ 07 января 2014
while(document.getElementById("DropList").childNodes.length>0) 
{
    document.getElementById("DropList").removeChild(document.getElementById("DropList").childNodes[0]);
}
0 голосов
/ 18 марта 2017

Сегодня я столкнулся с той же проблемой, я сделал, как показано ниже, при перезагрузке окна выбора.(На Простом JS)

        var select = document.getElementById("item");
        select.options.length = 0;
        var opt = document.createElement('option');
        opt.value = 0;
        opt.innerHTML = "Select Item ...";
        opt.selected = "selected";
        select.appendChild(opt);


       for (var key in lands) {
            var opt = document.createElement('option');
            opt.value = lands[key].id;
            opt.innerHTML = lands[key].surveyNo;
            select.appendChild(opt);

        }
0 голосов
/ 09 мая 2014

Если вам требуется поддержка IE, и в вашем списке выбора более 100 элементов, я настоятельно рекомендую вам заменить функцию выбора на такую ​​функцию:

function clearOptions(select) {
    var selectParentNode = select.parentNode;
    var newSelect = select.cloneNode(false); // Make a shallow copy
    selectParentNode.replaceChild(newSelect, select);
    return newSelect;
}

Параметр select должен быть элементом либо из селектора jquery, либо из вызова document.getElementBy. Единственным недостатком этого является то, что вы теряете события, которые были подключены к селекту, но вы можете легко присоединить их, когда они возвращаются из функции. Я работал с выбором, в котором было ~ 3 тыс. Элементов, и на IE9 потребовалось 4 секунды, чтобы очистить выбор, чтобы я мог обновить его новым содержимым. Почти мгновенно, делая это таким образом.

0 голосов
/ 12 сентября 2014
var select =$('#selectbox').val();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...