2009-09-08 6 views

Répondre

174

Essayez cette ou t ...

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

Une autre option serait quelque chose comme this, mais il ne fonctionne que pour une liste déroulante à la fois comme code ci-dessous:

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

Jetez un oeil à ce poste sur comment définir en fonction de la valeur, son intéressant, mais ne vous aidera pas à cette question spécifique:

Change the selected value of a drop-down list with jQuery

+0

changer juste myID pour sélectionner comme je veux tous les balises de sélection –

+22

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

+2

Savez-vous si cela déclenchera un événement 'change' dans tous les navigateurs en définissant simplement l'attribut? Il semble dans Chrome, mais ne l'a pas testé intensivement. Je pensais ajouter un autre '$ ('select'). Trigger ('change');' juste au cas où. Merci! –

12

Votre sélection est faux, vous avez probablement été à la recherche d'

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

Cela fonctionne aussi:

$('select option:first-child') 
+3

index CSS sélecteur nième-enfant commence à 1, pas 0 –

4

ce que vous voulez est probablement:

$("select option:first-child") 

Qu'est-ce que ce code

attr("selected", "selected"); 

fait est le réglage de la « sélectionné » attribut « sélectionné »

Si vous voulez que les options sélectionnées, peu importe que ce soit le premier enfant , le sélecteur est:

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

Remplacer 'attr' par' prop' si vous utilisez jQuery 1.6+ –

1

si vous voulez vérifier le texte de l'option sélectionnée, peu importe si 1 st enfant.

var a = $("#select_id option:selected").text(); 
alert(a); //check if the value is correct. 
if(a == "value") {-- execute code --} 
+0

Sauvegarde-moi une seconde recherche. C'est à peu près ce que je cherchais, même si j'étais plus intéressé à changer la valeur que de le vérifier. $ ('# myID option: selected'). text ('NEW STRING'); ' –

8

Ana solution alternative pour RSolgberg, qui déclenche l'événement 'onchange' si présent:

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

How to make first option of <select > selected with jQuery?

+1

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. –

1
var arr_select_val=[]; 

    $("select").each(function() { 
     var name=this.name; 
      arr_select_val[name]=$('select option:first-child').val(); 
    }); 


// Process the array object 
    $('.orders_status_summary_div').print(arr_select_val); 
1

Je réponds parce que les réponses précédentes ont cessé de fonctionner avec la dernière version de jQuery. Je ne sais pas quand il a cessé de fonctionner, mais la documentation dit que .prop() a été la méthode préférée pour obtenir/définir des propriétés depuis jQuery 1.6.

Voilà comment je l'ai eu à travailler (avec jQuery 3.2.1):

$('select option:nth-child(1)').prop("selected", true); 

J'utilise knockoutjs et les liaisons de changement n'étaient pas mise à feu avec le code ci-dessus, donc j'ajouté.changer() jusqu'à la fin.

Voici ce que je avais besoin pour ma solution:

$('select option:nth-child(1)').prop("selected", true).change(); 

Voir .prop() note dans la documentation ici: http://api.jquery.com/prop/

Questions connexes