Проверка существования option с заданным value

325
15 декабря 2016, 16:18

Есть список:

<select id="select">
    <option value="1">Цифра 1</option>
    <option value="3">Цифра 3</option>
    <option value="7">Цифра 7</option>
</select>

Как определить, существует ли option со значением, допустим, 4? То есть нужно определить, существует ли это значение: <option value="4">Цифра 4</option>.

Answer 1

И более многословно, без jQuery:

function hasOption(testedValue){ // testedValue - значение которое мы проверяем
    var select = document.getElementById('select'), // Наш select
        options = select.options;  // Объект, содержащий его опции
    for(var i = 0; i< options.length; i++){// Просто перебираем каждую опцию и проверяем
        if(options[i].value == testedValue){
            return true;
        }
    }
    return false;
}
Answer 2
if ($('#select > option[value=4]').length) {
  alert('Существует');
}
Answer 3

Обращаю внимание, что значение должно быть заключено в кавычки (неважно, двойные или одинарные), иначе селектор будет некорректным.

function test4() { 
  return document.querySelector("#smth option[value='4']") !== null; 
} 
 
function test2() { 
  return document.querySelector("#smth option[value='2']") !== null; 
}
<select id=smth> 
  <option value=1>First 
  <option value=4>Forth 
</select> 
 
<button onclick=alert(test4())>Yes</button> 
<button onclick=alert(test2())>No</button>

READ ALSO
Получение моделей Laravel 4.2 и разбивка на части. Вопрос о верстке Bootstrap

Получение моделей Laravel 4.2 и разбивка на части. Вопрос о верстке Bootstrap

Есть задача вывести, условно, популярные товары в карусель как тутТ

237
Отображение разделов меню аккордеона

Отображение разделов меню аккордеона

Есть меню аккордеон, в котором все разделы скрытыПри нажатии на заголовок они открываются

209
Добавление файла в &lt;input type=&ldquo;file&rdquo;&gt;

Добавление файла в <input type=“file”>

Предположим, что существует форма, содержащая поле для загрузки файлов: <input type='file'>Есть ли возможность написать такой скрипт, чтобы при...

215