J'ai écrit un code qui sélectionne essentiellement tous les input type=text
éléments comme celui-ci:
$('.sys input[type=text]').each(function () {}
Comment puis-je le modifier pour sélectionner input[type=text]
ou select
?
javascript
jquery
Jack
la source
la source
context form
utilise lefind form
, lefind form
est plus efficace que lecontext form
(une fonction d'appel évitée). Ceci est valable pour presque tous les sélecteurs utilisés. Ensuite, IMOfind form
est plus efficace que lenormal CSS selector
, car les deux parties du sélecteur sont relatives au nœud racine, où dans lefind form
, seule la.sys
partie est relative à lui, puisinput[type=text],select
est exécutée sur un ensemble d'éléments beaucoup plus petit, ce qui peut être plus rapide (mais cela doit être vérifié par des tests)$
appel sont si importantes pour votre application, veuillez éviter d'utiliser jQuery :). Cette réponse a tenté de répondre à la question d'OP, si c'était une question de performance, cette réponse ne sera pas ici en premier lieu. Merci quand même pour le commentaire :), appréciez-le$
call, mais sur tous les$
appels présents dans un appl. OMI, quand vous avez différentes façons de faire la même chose, j'essaie de toujours choisir celle qui fonctionne le mieux bc.slow performance
===unhappy users
. En outre, nous pouvons à la fois répondre à la question d'un PO avec plusieurs réponses (comme vous l'avez fait) et fournir des avantages / inconvénients de chacun d'eux (comme je l'ai fait dans un commentaire). OMI, il est important de remarquer pourquoi toutes les réponses sont différentes, tout en fournissant le même résultat. De plus, nous pouvons écrire du code JavaScript vanille qui fonctionne lentementJavaScript
performance
$
, classez vos divs spécifiquement et utilisezdocument.getElemenById/ElementsByClassName
, plutôt que de passer par$
ce qui fait beaucoup de vérification / analyse de chaîne de votre sélecteur, jQuery n'est pas célèbre pour sa bibliothèque performante. Et honnêtement, je n'ai pas vu une application ralentir à cause d'en appeler$
une de trop, si vous avez un site Web qui a ce problème, montrez-moi s'il vous plaît, je suis très intéressé :)EDIT: En fait, ce code ci-dessus est équivalent au sélecteur d'enfants
.sys > input[type=text]
si vous voulez que le descendant select (.sys input[type=text]
) vous devez utiliser les options données par @NiftyDude.Plus d'information:
jQuery.children()
la source
chilren
au lieu dechildren
Si vous avez plusieurs entrées sous forme de texte dans un formulaire ou un tableau que vous devez parcourir, j'ai fait ceci:
Ce que j'ai fait, c'est que j'ai vérifié chaque entrée pour voir si le type est défini sur "texte", puis il récupérera cet élément et le stockera dans la liste jQuery. Ensuite, il itérerait dans cette liste. Vous pouvez définir une variable temporaire pour l'itération actuelle comme ceci:
Cela définira l'élément actuel sur l'itération actuelle de votre pour chaque boucle. Ensuite, vous pouvez faire ce que vous voulez avec la variable temp.
J'espère que cela aide n'importe qui!
la source
pour le bouclage:
la source