Как очистить все параметры в раскрывающемся списке? - 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 ]

255 голосов
/ 29 июля 2010

Чтобы удалить параметры выбранного html-объекта, вы можете использовать этот фрагмент кода:

function removeOptions(selectbox)
{
    var i;
    for(i = selectbox.options.length - 1 ; i >= 0 ; i--)
    {
        selectbox.remove(i);
    }
}
//using the function:
removeOptions(document.getElementById("mySelectObject"));

Это будет работать во всех браузерах.=)

99 голосов
/ 29 июля 2010

Если вы хотите иметь легкий скрипт, тогда переходите на jQuery. В jQuery решение для удаления всех опций будет выглядеть так:

$("#droplist").empty();
89 голосов
/ 26 августа 2013

Возможно, не самое чистое решение, но оно определенно проще, чем удаление по одному:

document.getElementById("DropList").innerHTML = "";
63 голосов
/ 19 апреля 2013

Это лучший способ:

function (comboBox) {
    while (comboBox.options.length > 0) {                
        comboBox.remove(0);
    }        
}
24 голосов
/ 08 июня 2017

Это кратчайший путь:

document.getElementById('mySelect').innerText = null

Одна строка, нет для, нет JQuery, просто.

24 голосов
/ 29 июля 2010

Вы можете использовать следующее, чтобы очистить все элементы.Обратите внимание, что

var select = document.getElementById("DropList");
var length = select.options.length;
for (i = 0; i < length; i++) {
  select.options[i] = null;
}
14 голосов
/ 08 апреля 2013
function removeOptions(obj) {
    while (obj.options.length) {
        obj.remove(0);
    }
}
8 голосов
/ 14 февраля 2018

Это немного современный и чистый JavaScript

document.querySelectorAll('#selectId option').forEach(option => option.remove())

6 голосов
/ 18 сентября 2014

с PrototypeJS :

$('yourSelect').select('option').invoke('remove');
6 голосов
/ 15 сентября 2015

Обратите внимание, что у выбора может быть и
- optgroup &
- коллекция опций
в качестве его дочерних элементов.

Итак,

Метод # 1

var selectElement = document.getElementById('myselectid');
selectElement.innerHTML = '';

Метод # 2

var selectElement = document.getElementById('myselectid');
selectElement.textContent = '';

Я тестировал, оба работают на Chrome.
Iкак простой, старомодный, метод № 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...