J'ai un div et il contient plusieurs éléments d'entrée ... Je voudrais parcourir chacun de ces éléments. Des idées?
257
Utilisez children()
et each()
, vous pouvez éventuellement passer un sélecteur àchildren
$('#mydiv').children('input').each(function () {
alert(this.value); // "this" is the current element in the loop
});
Vous pouvez également simplement utiliser le sélecteur d'enfant immédiat:
$('#mydiv > input').each(function () { /* ... */ });
each()
. Vérifiez les documents, liés dans la réponse ci-dessus.Il est également possible de parcourir tous les éléments dans un contexte spécifique, peu importe à quel point ils sont imbriqués:
Le deuxième paramètre $ ('# mydiv') qui est passé au sélecteur jQuery 'input' est le contexte. Dans ce cas, la clause each () parcourra tous les éléments d'entrée du conteneur #mydiv, même s'ils ne sont pas des enfants directs de #mydiv.
la source
Si vous devez parcourir les éléments enfants de manière récursive :
la source
Cela peut également être fait de cette façon:
la source
Cela parcourt tous les enfants et leur élément avec une valeur d'index est accessible séparément en utilisant respectivement element et index .
la source
children () est une boucle en soi.
la source
Je ne pense pas que vous ayez besoin d'utiliser
each()
, vous pouvez utiliser la boucle standardde cette façon, vous pouvez avoir la norme pour les fonctionnalités de boucle comme
break
etcontinue
fonctionne par défautégalement
debugging will be easier
la source
$.each()
toujours plus lent qu'unefor
boucle, et c'est la seule réponse qui l'utilise. La clé ici est d'utiliser le.eq()
pour accéder à l'élément réel dans lechildren
tableau et non à la[]
notation bracket ( ).