230 votes

jQuery : comment sélectionner une option de son texte ?

J’ai besoin de vérifier si une instruction select dispose d’une option dont le texte est une valeur spécifique.

Par exemple `` je regarderait pour abc.

Y a-t-il un sélecteur pour cela ?

Je cherche quelque chose de similaire à `` , mais pour le texte

356voto

Floyd Pink Points 4438

Cela pourrait aider:

$('#test').find('option[text="B"]').val();

Démo - http://jsfiddle.net/nmvf6/1/

Ce serait vous donner la possibilité avec le texte B et non pas ceux qui a le texte qui contient B. Espérons que cette aide

EDIT:

Pour les dernières versions de jQuery ci-dessus ne fonctionne pas. Comme commenté par le Dilemme ci-dessous, c'est ce qui fonctionne pour jQuery 1.9.1:

$('#test option').filter(function () { return $(this).html() == "B"; }).val();

Mis à jour le violon

153voto

SLaks Points 391154

Vous pouvez utiliser l' :contains() selector pour sélectionner les éléments qui contiennent un texte spécifique.
Par exemple:

$('#mySelect option:contains(abc)')

Pour vérifier si une <select> élément a une telle option, utilisez l' .has() méthode:

if (mySelect.has('option:contains(abc)').length)

Trouver tous <select>s qui contiennent une telle option, utilisez l' :has() selector:

$('select:has(option:contains(abc))')

34voto

Dr. C. Hilarius Points 493

Aucune des suggestions précédentes a fonctionné pour moi dans jQuery 1.7.2 parce que je suis en train de définir l’index sélectionné de la liste basée sur la valeur d’un textbox, et certaines valeurs de texte sont contenues dans plusieurs options. J’ai fini par utiliser ce qui suit :

1voto

Bartosz Firyn Points 639

Cela fonctionne pour le jQuery 1.6 et au-dessus (côlon Remarque avant le crochet ouvrant) :

-3voto

dekomote Points 1578

Soit vous parcourez les options, soit placez le même texte dans un autre attribut de l'option et sélectionnez avec cela.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X