D'accord, dis que j'ai ceci:
<select id='list'>
<option value='1'>Option A</option>
<option value='2'>Option B</option>
<option value='3'>Option C</option>
</select>
À quoi ressemblerait le sélecteur si je voulais obtenir "Option B" quand j'ai la valeur '2'?
Veuillez noter qu'il ne s'agit pas de savoir comment obtenir la valeur de texte sélectionnée , mais de n'importe lequel d'entre eux, qu'il soit sélectionné ou non, selon l'attribut value. J'ai essayé:
$("#list[value='2']").text();
Mais ça ne marche pas.
javascript
jquery
drop-down-menu
jquery-selectors
Paolo Bergantino
la source
la source
$("#list option").filter(function () { return $(this).html() == "stuff"; }).val();
Réponses:
Il recherche un élément avec id
list
qui a une propriétévalue
égale à2
.Ce que vous voulez, c'est l'
option
enfant dulist
:la source
$('#list option:selected').text()
$('#list').val()
.trim()
après.text()
car certains navigateurs peuvent ajouter parfois des espaces avant et après le texte qui sont invisibles pour l'utilisateur mais peuvent conduire à des valeurs erronées$("#list option[value='2']").text().trim()
Si vous souhaitez obtenir l'option avec une valeur de 2, utilisez
Si vous souhaitez obtenir l'option actuellement sélectionnée, utilisez
la source
Cela fonctionnait parfaitement pour moi, je cherchais un moyen d'envoyer deux valeurs différentes avec des options générées par MySQL, et ce qui suit est générique et dynamique:
$(this).find("option:selected").text();
Comme mentionné dans l'un des commentaires. Avec cela, j'ai pu créer une fonction dynamique qui fonctionne avec toutes mes boîtes de sélection que je veux obtenir à la fois les valeurs, la valeur de l'option et le texte.
Il y a quelques jours, j'ai remarqué que lors de la mise à jour de jQuery de 1.6 à 1.9 du site, j'ai utilisé ce code, cela ne fonctionnait plus ... c'était probablement un conflit avec un autre morceau de code ... de toute façon, la solution était de supprimer l'option du find () appel:
C'était ma solution ... utilisez-la uniquement si vous avez un problème après avoir mis à jour votre jQuery.
la source
Sur la base du code HTML original publié par Paolo, j'ai trouvé ce qui suit.
Il a été testé pour fonctionner sur Internet Explorer et Firefox.
la source
pour plusieurs valeurs sélectionnées dans l'
#list
élément.la source
S'il n'y a qu'une seule balise select sur la page, vous pouvez spécifier select inside of id 'list'
Pour obtenir le texte sélectionné
la source
Essayez ce qui suit:
La raison pour laquelle votre extrait d'origine ne fonctionnait pas est que vos
OPTION
balises sont des enfants de votreSELECT
balise, qui contient leid
list
.la source
Il s'agit d'une ancienne question qui n'a pas été mise à jour depuis un certain temps. La façon correcte de le faire maintenant serait d'utiliser
J'espère que ça aide :-)
la source
Je voulais obtenir le label sélectionné. Cela a fonctionné pour moi dans jQuery 1.5.1.
la source
la source
optgroup
tag en tant qu'enfant de votreselect
et l'option sélectionnée est là-dedansoptgroup
. utilisation$("#list option:selected").text();
qui fonctionne même dans ce caslaissez un espace après le sélecteur d'id.
la source
Vous pouvez obtenir le texte de l'option sélectionnée en utilisant la fonction
.text();
vous pouvez appeler la fonction comme ceci:
la source
Pendant le "bouclage" à travers des éléments de sélection créés dynamiquement avec un .each (fonction () ...):
$("option:selected").text();
et$(this + " option:selected").text()
n'a pas renvoyé le texte de l'option sélectionnée - à la place, il était nul.Mais la solution de Peter Mortensen a fonctionné:
Je ne sais pas pourquoi la manière habituelle ne réussit pas
.each()
(probablement ma propre erreur), mais merci, Peter. Je sais que ce n'était pas la question d'origine, mais je le mentionne "pour les débutants venant de Google".J'aurais commencé avec,
$('#list option:selected").each()
sauf que j'avais également besoin de récupérer des éléments de l'élément select.la source
Utilisation:
la source
Je cherchais à obtenir val par nom de champ interne au lieu d'ID et je suis venu de google à ce poste qui m'a aidé mais n'a pas trouvé la solution dont j'ai besoin, mais j'ai obtenu la solution et la voici:
Ainsi, cela pourrait aider quelqu'un à rechercher la valeur sélectionnée avec le nom interne du champ au lieu d'utiliser un identifiant long pour les listes SharePoint:
la source
J'avais besoin de cette réponse car j'avais affaire à un objet casté dynamiquement, et les autres méthodes ici ne semblaient pas fonctionner:
Bien sûr, cela utilise l' objet DOM au lieu d'analyser son code HTML avec nodeValue, childNodes, etc.
la source
Un conseil: vous pouvez utiliser le code ci-dessous si votre valeur est dynamique:
Ou (meilleur style)
Comme mentionné dans jQuery, obtenez un texte de balise d'option spécifique et placez une variable dynamique sur la valeur
la source
Comme solution alternative, vous pouvez également utiliser une partie contextuelle du sélecteur jQuery pour rechercher des
<option>
élémentsvalue="2"
dans la liste déroulante:la source
Je voulais une version dynamique pour sélectionner plusieurs qui afficherait ce qui est sélectionné à droite (j'aurais aimé lire et voir
$(this).find
... plus tôt):la source
Vous pouvez obtenir l'une des méthodes suivantes
la source