109 votes

Comment sélectionner le premier élément de la liste déroulante à l'aide de jquery ?

Je veux savoir comment sélectionner la première option dans toutes les balises de sélection sur ma page en utilisant jquery.

J'ai essayé ça :

$('select option:nth(0)').attr("selected", "selected"); 

Mais ça n'a pas marché

199voto

RSolberg Points 17001

Essayez ceci...

$('select option:first-child').attr("selected", "selected");

Une autre option serait la suivante, mais elle ne fonctionnera que pour une seule liste déroulante à la fois, comme codé ci-dessous :

var myDDL = $('myID');
myDDL[0].selectedIndex = 0;

Jetez un coup d'œil à cet article sur la façon de définir la base de valeur, c'est intéressant mais cela ne vous aidera pas pour ce problème spécifique :

Modifier la valeur sélectionnée d'une liste déroulante avec jQuery

0 votes

Il suffit de changer myID en select car je veux que toutes les balises selectes

26 votes

Maintenant, dans jQuery, vous pouvez accéder aux propriétés par le biais de la fonction .prop() méthode. Vous pouvez donc utiliser $("select").prop("selectedIndex",0); pour un moyen rapide de sélectionner la première option de toutes les listes déroulantes.

3 votes

Savez-vous si le simple fait de définir l'attribut déclenchera un événement de changement dans tous les navigateurs ? Il semble que oui dans Chrome, mais je ne l'ai pas testé de manière approfondie. Je pensais ajouter un autre $('select').trigger('change'); juste au cas où. Merci !

13voto

Aistina Points 6720

Votre sélecteur est erroné, vous recherchez probablement

$('select option:nth-child(1)')

Cela fonctionnera également :

$('select option:first-child')

3 votes

L'index du sélecteur CSS nth-child commence à 1, et non à 0

10voto

Muhammad Omar Points 1204

Ana alternative Solution pour RSolgberg, qui tire le 'onchange' si elle est présente :

$("#target").val($("#target option:first").val());

Comment faire en sorte que la première option de <select> soit sélectionnée avec jQuery ?

1 votes

Cela fonctionne mieux que la réponse acceptée si vous devez changer l'option sélectionnée plusieurs fois. Par exemple, si vous filtrez vos options et en affichez une partie.

5voto

vijay Points 41
$("#DDLID").val( $("#DDLID option:first-child").val() );

Pour des opérations complètes de listes déroulantes à l'aide de Jquery

0 votes

Le lien est maintenant mort.

4voto

RichN Points 2615

Ce que vous voulez est probablement :

$("select option:first-child")

Ce que ce code

attr("selected", "selected");

est de mettre l'attribut "selected" à "selected".

Si vous voulez les options sélectionnées, indépendamment du fait qu'il s'agisse du premier enfant, le sélecteur est :

$("select").children("[selected]")

1 votes

Remplacer attr avec prop si vous utilisez jQuery 1.6+.

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