jQuery.each(function(index, valeur){}); Quelle est la valeur?
Je suis à l'apprentissage de jQuery à partir d'un livre appelé La tête la Première jQuery. Le livre est très facile à apprendre. Le point est, il y a un .each()
fonction(inclus dans l'image que j'ai scanné à partir de l' ) qui a une fonction() parameter. La fonction() les paramètres sont index
et value
. L'indice est expliqué sur la page, mais quelle est la valeur? Et aussi, car il est une fonction anonyme(qui ne peut pas être réutilisé) comment faut-il prendre tous les paramètres?
api.jquery.com/each
Et qui a dit que les fonctions anonymes ne peuvent pas prendre des paramètres? 🙂
Et qui a dit que les fonctions anonymes ne peuvent pas prendre des paramètres? 🙂
OriginalL'auteur cadence441 | 2012-06-10
Vous devez vous connecter pour publier un commentaire.
Il y a deux
each
méthodes de jQuery. L'un est pour le vélo sur un objet jQuery qui contient de nombreux matchs. Par exemple, supposons que nous voulions trouver tous les paragraphes de la page:Deuxièmement, il y a de plus générique
each
pour itérer sur des objets ou des tableaux:Lorsque jQuery cycles sur les éléments de l'une de ces exemples, il conserve le nombre de quel objet il s'agit actuellement de la manipulation. Lorsqu'il exécute notre fonction anonyme, il passe à deux paramètres - la valeur actuelle nous sommes sur (index), et que l'objet (de la valeur).
Les sorties qui "Jonathan est de 0", et "Sampson est de 1" puisque nous sommes à l'aide d'un index de base zéro.
Mais est-ce que nos indigènes objet jQuery?
Dans ce cas,
value
est un réelHTMLParagraphElement
objet, de sorte que nous pouvons accéder à des propriétés commetextContent
ouinnerText
sur si on aime:value
est l'objet et non pas levalue
propriété? Parvalue
bien je veux dire, tout comme dans uninput
il y a untype
une propriété qui peut êtrebutton
,submit
et ainsi de suite il est unvalue
propriété pourinput
types de trop.Oui, le
value
est l'élément. Cela pourrait être un élément HTML, ou ce pourrait être une chaîne de caractères. Ou ce pourrait être un tableau, un objet, ou le nombre, ça dépend de la collection vous êtes à vélo. Et notez que les noms de variableinput
etvalue
n'a pas d'importance - que l'ordre n'. Vous verrez souvent des gens ne comprennentindex
, ou ils vont utiliser à la fois sous des noms différents, commei
etv
.ainsi, dans le dernier exemple, la "valeur" est le même que "cela" ?
C'est correct: jsfiddle.net/g4kLh
OriginalL'auteur Sampson
Cette deuxième paremter qui vous appelle est la valeur de valeur de la collection qui est actuellement traité par la fonction de chaque.
Pour votre deuxième question - fonctions anonymes peuvent être réutilisés, simplement parce qu'ils n'ont pas un nom ne signifie pas qu'ils ne peuvent pas avoir de paramètres ou d'être exécuté. Voir l'exemple suivant:
...suite <input type="submit" class="maclasse" value="Envoyer"/> de Sorte que la valeur du premier élément deviendra "Bouton"? Et (fn) de jQuery ou définis par l'utilisateur? Je veux dire que l' .chaque fonction de() de jQuery est défini. Juste comme ça, c'est (fn) de jQuery? Si elle est définie par l'utilisateur, nous n'avons pas passer n'importe quoi comme paramètre fn, droite? Et de même pour (a,b) droit?
Dans votre exemple, la première valeur d'exécution seraient les DOM-élément du bouton (donc, ne serait-ce; dans chacune des fonctions du deuxième paramètre, et de ce point vers le même objet) et la prochaine fois ce serait les DOM-élément le bouton soumettre. Au sujet de mon exemple: il doit seulement démontrer comment une fonction anonyme peut être exécuté par une fonction différente. Il n'utilise pas jQuery. Je vous recommande de lire à propos de JavaScript de base. JavaScript peut ressembler à C++/C/Java, mais c'est très différent.
Quand j'ai essayé ce code
<!DOCTYPE html> <html> <head> <style> div { color:red; text-align:center; cursor:pointer; font-weight:bolder; width:300px; } </style> <script src="http://code.jquery.com/jquery-latest.js"></script> </head> <body> <input type="button" class="lol" value="try a"/> <input type="submit" class="lol" value="try b"/> <script> $(document).ready(function () { $(".lol").each(function (value) { alert(value); }); }); </script> </body> </html>
il a montré jusqu'à l'indice et pas de la valeur. Pourquoi?Premier paramètre est toujours l'indice. Le deuxième paramètre est toujours la valeur. Il n'a pas d'importance comment vous les nommez. Utilisation de la fonction(index, valeur) { ... } au lieu de la fonction(valeur) { ... } et il suffit de ne pas utiliser le paramètre d'index si vous n'en avez pas besoin.
OriginalL'auteur Preli