Question Déterminer si html select contient une valeur dans l'une de ses options enfant


Donné un select

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

Quelle est la meilleure façon de déterminer s'il existe une option de valeur X dans la sélection avec JQuery?


15
2018-06-30 12:09


origine


Réponses:


Vous pouvez le faire en utilisant un sélecteur et .length, comme ça:

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

Ou en tant que fonction:

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

Si ce ne sont pas des nombres et que vous avez peut-être ' dans par exemple (visser le sélecteur), vous pouvez utiliser .filter(), comme ça:

function optionExists(val) {
  return $("#mySelect option").filter(function() {
           return this.value === val;
         }).length !== 0;
}

29
2018-06-30 12:11



le :a() Le sélecteur devrait fonctionner, quelque chose comme ceci:

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

C'est loin d'être la seule solution, mais une approche facile à comprendre. Vous pourriez aussi faire quelque chose comme ceci pour un .Exists () fonction depuis .length > 0 n'est parfois pas clair pour dire qu'il existe.


5
2018-06-30 12:18