У меня есть тег select с тегами option
<select id="vid" name="vid[]">
<option value="1">Мелкая собака</option>
<option value="2">Средняя собака</option>
<option value="3">Крупная собака</option>
<option value="4">Кошка</option>
<option value="6">Мелкий грызун</option>
<option value="7">Крупный грызун</option>
<option value="8">Мелкая птица</option>
<option value="9">Крупная птица</option>
<option value="10">Хорек</option>
<option value="11">Енот</option>
<option value="12">Минипиг</option>
<option value="13">Аквариумные рыбки</option>
</select>
Как лучше на чистом JS скрыть все элементы option кроме первых трех?
Сначала нужно вытащить все элементы, связанные с этим select'ом - document.getElementById()
Дальше - вытащить все элементы option
внутри этого select'a - document.getElementsByTagName().
Теперь у нас есть список (массив) элементов, над которыми нужно произвести какие-либо действия. Собственно строка let optionList = document.getElementById('vid').getElementsByTagName('option');
получает все элементы.
Дальше в цикле просто проставляем им style="display:none;"
<script>
let optionList = document.getElementById('vid').getElementsByTagName('option');
for (i = 0; i < optionList.length; i++) {
if (i > 2) {
optionList[i].setAttribute('style', 'display:none;')
}
}
</script>
Хоть в вопросу и написано про js
, я считаю это перебор.
Предлагаю все таки делать это через css
:
#vid option:nth-child(n+4) {
display: none;
}
<select id="vid" name="vid[]">
<option value="1">Мелкая собака</option>
<option value="2">Средняя собака</option>
<option value="3">Крупная собака</option>
<option value="4">Кошка</option>
<option value="6">Мелкий грызун</option>
</select>
PS: если надо оставить каких-то конкретных животных тогда уже лучше использовать js (определять по содержимому)
var option = document.querySelectorAll('option');
for (let i = 0; i < option.length; i++) {
if (i > 2) {
option[i].style.display = 'none';
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Задача: подключить БД Postgresql 11 к проекту на React для получения оттуда данныхНе могу найти документацию, соответствующую реальности или примеры...
Как установить пакет ни по инструкциям в документации VK, ни по инструкциям документации NPM и ни по инструкциям интернета так и не удалосьА...
Как с помощью регулярки сделать из этого CA - Los Angeles вот это CA-Los-Angeles?