2010-05-19 9 views
0

J'ai une série de boîtes de sélection dans une table comme ceci:jQuery - Cyclisme à travers des éléments enfants

<tr> 
<td><select></select></td> 
<td><select></select></td> 
<td><select></select></td> 
<td><select></select></td> 
</tr> 

Avec environ 10 lignes.

Je tente de réinitialiser toutes les zones de sélection de la ligne à une valeur par défaut, mais ayant des problèmes avec la syntaxe, quelqu'un peut-il aider? C'est ce que j'ai pour le moment, mais ça ne semble pas fonctionner:

$(row).children('td > select').each().val('0'); 

Un conseil apprécié.

Merci.

+1

la partie .each() est superflue. Est-ce que ça marche si vous laissez tomber ça? –

Répondre

1

Si vous essayez de sélectionner simplement une valeur par défaut, cela devrait fonctionner (non testé):

$('select', row).each(function() { 
    this.selectedIndex = 0; //or whatever the index you want 
}); 

Utiliser $ (« select », ligne) est un peu plus rapide que le sélecteur vous avez, donc accède directement à la propriété objets, au lieu d'utiliser l'objet jQuery.

+0

Merci, c'était exactement ce que je recherchais! – Dan

0

Vous n'avez pas besoin du tout each, poignées jQuery appliquer le changement à tous les éléments correspondants pour vous:

$(row).children('td > select').val('0'); 

Notez que qui définit la valeur de la zone de sélection, par exemple, fait l'option avec le value correspondant sélectionné. Ce n'est pas la même chose que de définir l'index de l'option sélectionnée (une autre des réponses ici vous montre comment faire cela). En utilisant un exemple avec des valeurs non numériques rend la distinction un peu plus clair:

HTML:

<div id='characters'> 
<select name='favorite'> 
<option value='fred'>Fred Flintstone</option> 
<option value='barney'>Barney Rubble</option> 
<option value='wilma'>Wilma Flintstone</option> 
<option value='betty' selected>Betty Rubble</option> 
</select> 
<select name='secondchoice'> 
<option value='fred'>Fred Flintstone</option> 
<option value='barney selected'>Barney Rubble</option> 
<option value='wilma'>Wilma Flintstone</option> 
<option value='betty'>Betty Rubble</option> 
</select> 

appel jQuery pour changer à la fois de ceux 'Wilma':

$('#characters select').val('wilma'); 

... ou (peut-être plus sensiblement pour ce particulier exemple) pour ne pas avoir des options sélectionnées à tous:

$('#characters select').val(''); 
Questions connexes