Определите, содержит ли выбор HTML значение в какой-либо из его дочерних опций

Учитывая выбор

<select id="Myselect">
<option value="-1">Please Select<option>
<option value="1">Selection 1<option>
<option value="2">Selection 2<option>
</select>

Что лучший способ определить, существует ли опция значения X в выборе с помощью JQuery?

16
задан Dan 30 June 2010 в 12:09
поделиться

2 ответа

Вы можете сделать это, используя селектор и .length, как здесь:

var exists = $("#mySelect option[value='-1']").length !== 0;

Или как функцию:

function optionExists(val) {
  return $("#mySelect option[value='" + val + "']").length !== 0;
}

Если это не числа и у вас там может быть ', например (прикручивая селектор), вы можете использовать .filter(), как здесь:

function optionExists(val) {
  return $("#mySelect option").filter(function() {
           return this.value === val;
         }).length !== 0;
}
32
ответ дан 30 November 2019 в 16:41
поделиться

Селектор : has () должен работать примерно так:

var exists = $("#Myselect:has(option[value='X'])").length > 0;

Это далеко не единственный способ, но его легко понять. Вы также можете сделать что-нибудь вроде для функции .Exists () , поскольку .length> 0 иногда неясно, что означает, что она существует.

5
ответ дан 30 November 2019 в 16:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: