Есть список:
<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>.
И более многословно, без 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;
}
if ($('#select > option[value=4]').length) {
alert('Существует');
}
Обращаю внимание, что значение должно быть заключено в кавычки (неважно, двойные или одинарные), иначе селектор будет некорректным.
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>
Сборка персонального компьютера от Artline: умный выбор для современных пользователей