Мой код работает в IE, но ломается в Safari, Firefox и Opera. (большой сюрприз)
document.getElementById("DropList").options.length=0;
После поиска я узнал, что это то, length=0
что ему не нравится.
Я пробовал ...options=null
и var clear=0; ...length=clear
с тем же результатом.
Я делаю это для нескольких объектов одновременно, поэтому я ищу легкий код JS.
<option selected>
коды ?? (Google разместил нас здесь, но это не здесь) ... См. document.getElementById ("form1"). reset () реальное решение.Ответы:
Вы можете использовать следующее, чтобы очистить все элементы.
источник
empty()
, так что вы бы сделали$("DropList").empty();
Чтобы удалить параметры HTML-элемента
select
, вы можете использоватьremove()
метод:Важно убрать
options
задом наперед; какremove()
метод переупорядочиваетoptions
коллекцию. Таким образом, гарантируется, что удаляемый элемент все еще существует!источник
Если вы хотите иметь легкий скрипт, то перейдите на jQuery. В jQuery решение для удаления всех опций будет таким:
источник
for (a in select.options) { select.options.remove(0); }
все работает просто отлично.$("#droplist").empty();
кода типа по сравнению с тысячами строк ванильного JS делает его достойным добавления jQuery. Если мы говорим о разметке / косметике для простой веб-страницы, вы на 100% правы.Возможно, не самое чистое решение, но оно определенно проще, чем удаление по одному:
источник
Это лучший способ:
источник
while (comboBox.options.length) comboBox.remove(0);
Это короткий путь:
Одна строка, нет для, нет JQuery, просто.
источник
источник
Я хотел бы отметить, что проблема в первоначальном вопросе больше не актуальна сегодня. И есть еще более короткая версия этого решения:
Я проверял, что обе версии работают в 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 сток браузер. Я думаю, что можно с уверенностью заключить, что он абсолютно совместим с любым устройством, которое есть сейчас, поэтому я рекомендую этот подход.
источник
Это немного современный и чистый JavaScript
document.querySelectorAll('#selectId option').forEach(option => option.remove())
источник
с прототипом JS :
источник
Если вы используете JQuery и ваш элемент управления имеет идентификатор «DropList», вы можете удалить его параметры следующим образом:
На самом деле это работает для меня с любым списком опций, как datalist.
Надеюсь, поможет.
источник
Обратите внимание, что
выборка может иметь обе коллекции - optgroup &
- options
как свои дочерние элементы .
Так,
Способ № 1
Способ № 2
Я проверял, оба работают на Chrome.
Мне нравится более простой, старомодный, метод № 1.
источник
$select.html('')
Пытаться
Или, может быть, посмотрите в функцию removeChild ().
Или если вы используете JQuery Framework.
источник
Использование JQuery - более красивый, короткий и умный способ сделать это!
источник
Это может быть использовано для очистки параметров:
источник
Идите назад. Причина в том, что размер уменьшается после каждого удаления.
источник
Надеюсь, этот кодекс поможет вам
источник
Я думаю, что это лучшее решение. является
источник
Самые простые решения самые лучшие, поэтому вам просто нужно:
источник
Элементы должны быть удалены в обратном порядке, в противном случае это приведет к ошибке. Кроме того, я не рекомендую просто устанавливать значения
null
, так как это может вызвать неожиданное поведение.Или, если вы предпочитаете, вы можете сделать это функцией:
источник
источник
Над кодом ответа нужно внести небольшие изменения, чтобы полностью завершить список, пожалуйста, проверьте этот фрагмент кода.
обновите длину, и он удалит все данные из выпадающего списка. Надеюсь, это кому-нибудь поможет.
источник
источник
Если вам нужно поддерживать IE, и в вашем списке выбора более 100 элементов, я настоятельно рекомендую заменить его на функцию, подобную следующей:
Параметр select должен быть элементом либо из селектора jquery, либо из вызова document.getElementBy. Единственным недостатком этого является то, что вы теряете события, которые вы подключили к селекту, но вы можете легко присоединить их, когда они возвращаются из функции. Я работал с выбором, в котором было ~ 3 тыс. Элементов, и на IE9 потребовалось 4 секунды, чтобы очистить выбор, чтобы я мог обновить его с новым содержимым. Почти мгновенно, делая это таким образом.
источник
$('#selectbox').replaceWith($('#selectbox')[0].cloneNode(false));
Для Vanilla JavaScript существует простой и элегантный способ сделать это:
источник
Сегодня я столкнулся с той же проблемой, я сделал, как показано ниже, при перезагрузке выбора. (В Простом JS)
источник
источник