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

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

Попробуйте

document.getElementsByTagName("Option").length=0

Или, возможно, посмотрите на функцию removeChild ().

Или, если вы используете JQuery Framework.

$("DropList Option").each(function(){$(this).remove();});
6 голосов
/ 10 июня 2015

Если вы используете JQuery и у вашего элемента управления есть идентификатор "DropList", вы можете удалить его параметры следующим образом:

$('#DropList option').remove();

На самом деле это работает для меня с любым списком опций, например, с данными.

Надеюсь, это поможет.

4 голосов
/ 28 октября 2014

Использование JQuery - более красивый, короткий и умный способ сделать это!

$('#selection_box_id').empty();
4 голосов
/ 23 ноября 2016

Это можно использовать для очистки параметров:

function clearDropDown(){
  var select = document.getElementById("DropList"),
      length = select.options.length;
  while(length--){
    select.remove(length);
  }
}
<select id="DropList" >
  <option>option_1</option>
  <option>option_2</option>
  <option>option_3</option>
  <option>option_4</option>
  <option>option_5</option>
</select>
<button onclick="clearDropDown()">clear list</button>
3 голосов
/ 25 марта 2015

Вернитесь назад.Причина в том, что размер уменьшается после каждого удаления.

for (i = (len-1); i > -1; i--) {
    document.getElementById("elementId").remove(i);
}
2 голосов
/ 29 апреля 2019

Я хотел бы отметить, что проблема в первоначальном вопросе сегодня больше не актуальна.И есть еще более короткая версия этого решения:

selectElement.length = 0;

Я проверял, что обе версии работают в Firefox 52, Chrome 49, Opera 36, ​​Safari 5.1, IE 11, Edge 18, последних версиях Chrome, Firefox, Samsung Internet и UC Browser на Android, Safari на iPhone 6S, Android 4.2.2.Я думаю, что можно с уверенностью заключить, что он абсолютно совместим с любым устройством, которое есть сейчас, поэтому я рекомендую этот подход.

2 голосов
/ 28 мая 2019
var select = document.getElementById("DropList");
var length = select.options.length;
for (i = 0; i < length; i++) {
  select.options[i].remove();
}

Надеюсь, этот код поможет вам

2 голосов
/ 09 июня 2017

Элементы должны быть удалены в обратном порядке, в противном случае это приведет к ошибке.Кроме того, я не рекомендую просто устанавливать значения на null, так как это может вызвать неожиданное поведение.

var select = document.getElementById("myselect");
for (var i = select.options.length - 1 ; i >= 0 ; i--)
    select.remove(i);

Или, если вы предпочитаете, вы можете сделать его функцией:

function clearOptions(id)
{
    var select = document.getElementById(id);
    for (var i = select.options.length - 1 ; i >= 0 ; i--)
        select.remove(i);
}
clearOptions("myselect");
2 голосов
/ 23 ноября 2016

Самые простые решения самые лучшие, поэтому вам просто нужно:

var list = document.getElementById('list');
while (list.firstChild) {
    list.removeChild(list.firstChild);
}
<select id="list">
  <option value="0">0</option>
  <option value="1">1</option>
</select>
2 голосов
/ 26 сентября 2016

Я думаю, что это лучший золь.

 $("#myselectid").html(''); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...