Définir l'index sélectionné d'une liste Déroulante à l'aide de jQuery
Comment puis-je régler l'index d'un menu déroulant en jQuery si la façon dont je suis la recherche le contrôle est comme suit:
$("*[id$='" + originalId + "']")
Je faire de cette façon parce que je suis de la création de contrôles dynamiquement et depuis les id sont modifiés lors de l'utilisation de Formulaires Web, j'ai trouvé cela comme un travail autour de me trouver quelques contrôles. Mais une fois que j'ai l'objet jQuery, je ne sais pas comment définir l'index sélectionné à 0 (zéro).
Vous devez vous connecter pour publier un commentaire.
Tout d'abord - que le sélecteur est assez lent. Il analyse chaque élément du DOM à la recherche pour les ids. Il sera de moins en moins de performances si vous pouvez attribuer une classe à l'élément.
Pour répondre à votre question, il existe quelques façons de changer de sélectionner les éléments de valeur dans jQuery
#an-id
est plus rapide, mais*[id$=ends-with]
est beaucoup plus lent, c'est ce que le "attribution d'une classe à l'élément" est la signification$("select#elem").val('0').change()
peut être utilisé pour deux de la sélection et de la mise à jour de l'INTERFACE utilisateur.$("select[id$='" + originalId + "']")
est au moins oodles plus vite que$("*[id$='" + originalId + "']")
Viens de trouver ceci, ça fonctionne pour moi et personnellement, je trouve cela plus facile à lire.
Ceci permettra de définir l'indice réel comme gnarf la réponse à la question 3 de l'option.
Cela n'a pas l'habitude de travailler mais ne le fait maintenant... voir le bug:
http://dev.jquery.com/ticket/1474
Additif
Comme il est recommandé dans les commentaires :
$("select#elem").prop('selectedIndex', 0);
.prop('selectedIndex', 0);
indépendamment de si.attr()
fonctionne ou pas 🙂Je suis en utilisant
pour sélectionner l'option élément qui a une valeur='xyz'
Je suis en train d'écrire cette réponse en 2015, et pour une raison quelconque (probablement les anciennes versions de jQuery) aucune des autres réponses ont travaillé pour moi. Je veux dire, ils changent l'index sélectionné, mais il ne fait pas réfléchir sur la liste déroulante.
Ici est une autre façon de modifier l'index, et ont en fait il tenir compte, dans la liste déroulante:
prop('selectedIndex', ...);
(testé avec Chrome & Firefox) modification de la sélection.change
de l'événement sur la liste déroulante, ce qui pourrait aussi être utile de les corriger/solution de contournement pour les personnes qui sont en train de changer la sélection en appelantprop('selectedIndex', ...)
, plutôt que deval(...)
. Peut-être le problème, c'est que vous êtes à l'écoute pour unechange
événement, et C'est ce qui ne fonctionne pas pour vous? C'est vrai qu'il suffit de changer deprop
erty ne va pas au feu de tous les événements...JQuery code:
Code Jsp:
Vous voulez saisir la valeur de la première option dans l'élément select.
Pour choisir la 2ème option
Ici, nous avons ajouter le seuil de déclenchement ("changement") pour faire de l'événement un incendie.
va le mettre à 0
Sélectionnez 4ème option
exemple sur jsfiddle