Quelle est la différence entre $ .each (sélecteur) et $ (sélecteur) .each ()

Quelle est la différence entre ceci:

$.each($('#myTable input[name="deleteItem[]"]:checked').do_something()); 

et ça:

 $('#myTable input[name="deleteItem[]"]:checked').each(function() { do_something }); 

Le code HTML de la cellule de table sélectionnée et utilisée ressemble à ceci:

  

J’ai passé en revue la documentation de jQuery, mais je ne comprends toujours pas la différence. (Est-ce moi ou cette documentation est-elle parfois légèrement “nébuleuse” dans la clarté du contenu?)

Infos ajoutées:

Apparemment, ma tentative d’un exemple générique est la confusion des gens! Avec la parenthèse (précédemment) manquante dans le premier exemple. 🙁

Le premier exemple provient d’une ligne de mon code qui supprime le

pour toutes les lignes avec une case à cocher cochée:

 $.each($('#classesTable input[name="deleteClasses[]"]:checked').parent().parent().parent().remove()); 

Le deuxième exemple provient d’une situation où je regarde à travers le #classesTable pour toutes les cases à cocher cochées et supprimer son élément correspondant dans une liste déroulante.

 $('#classesTable input[name="deleteClasses[]"]:checked').each(function(){ $('#classesList option[value="' + $(this).attr('value') + '"]').remove(); }); 

Je comprends qu’ils font deux choses différentes, mais pas au sharepoint pouvoir dire “Je dois utiliser $ .each () dans ce cas et .each (function () {}) dans un autre cas.

Sont-ils interchangeables? Seulement dans certains cas? Jamais?

La description:

.each est un iterator utilisé pour itérer uniquement la collection d’objects jQuery, tandis que jQuery.each ( $.each ) est une fonction générale pour l’itération d’objects et de tableaux javascript.

Exemples:

Javascript Array (ou object js) en utilisant $ .each ():

 var myArray = [10,20,30]; jQuery.each( myArray, function(index, value) { console.log('element at index ' + index + ' is ' + value); }); //Output element at index 0 is 10 element at index 1 is 20 element at index 2 is 30 

Objets jQuery utilisant .each ()

 $('#dv').children().each(function(index, element) { console.log('element at index ' + index + 'is ' + (this.tagName)); console.log('current element as dom object:' + element); console.log('current element as jQuery object:' + $(this)); }); //Output element at index 0 is input element at index 1 is p element at index 2 is span 

Si vous recherchez d’autres exemples + détails, $ .each vs .each ()

Ressources

de http://api.jquery.com/jQuery.each :

La fonction $ .each () n’est pas la même chose que .each (), qui est utilisée pour itérer exclusivement sur un object jQuery. La fonction $ .each () peut être utilisée pour parcourir n’importe quelle collection, que ce soit une carte (object JavaScript) ou un tableau.

Vous voulez vraiment utiliser $.each avec un tableau qui n’est pas des éléments ou quelque chose. c’est à dire:

 var x = ["test", "test2"]; 

Vous utiliseriez $.each(x... pour parcourir cela au lieu de x.each 🙂

.each est pour les éléments seulement 🙂

Il n’y a pas de différence fonctionnelle. Chaque object jQuery possède une méthode .each() héritée de jQuery.fn . En appelant cette object method , jQuery sait déjà quel Array (-like object) doit être parcouru. En d’autres termes, il parcourt les indexed propertys de l’object jQuery actuel.

$.each() est juste un “outil d’aide” qui parcourt n’importe quel type de Array ou d’ Object , mais bien sûr, vous devez indiquer la méthode à utiliser.
Que vous passiez dans un Array ou dans un object, cela prendra également soin de vous en utilisant un for-in ou for loop sous le capot.

Le premier exécutera la fonction de rappel pour les éléments de la collection que vous avez passée, mais votre code n’est pas syntaxiquement correct pour le moment.

CA devrait etre:

 $.each($('#myTable input[name="deleteItem[]"]:checked'), do_something); 

Voir: http://api.jquery.com/jQuery.each/

La seconde exécutera la fonction sur chaque élément de la collection sur laquelle vous l’exécutez.

Voir: http://api.jquery.com/each/

Dans le premier cas, vous pouvez effectuer une itération sur les objects jQuery et sur d’autres éléments du tableau, comme indiqué ici:

jQuery.each ()

Dans le second cas, vous pouvez uniquement itérer sur les objects jQuery comme indiqué ici:

.chaque()

De ce que je comprends $.each(); boucle à travers un object ou un tableau et vous donne l’iterator et la valeur de chaque élément.

$().each(); parcourt une liste d’objects jQuery et vous donne l’iterator et l’object jQuery.

Tiré de http://api.jquery.com/jQuery.each/

La fonction $.each() n’est pas la même chose que .each() , qui est utilisée pour itérer exclusivement sur un object jQuery. La fonction $.each() peut être utilisée pour parcourir n’importe quelle collection, que ce soit une carte (object JavaScript) ou un tableau. Dans le cas d’un tableau, le rappel est passé un index de tableau et une valeur de tableau correspondante à chaque fois. (La valeur peut également être accédée via le mot-clé this, mais Javascript va toujours envelopper cette valeur en tant qu’object, même s’il s’agit d’une simple chaîne ou valeur numérique.) La méthode renvoie son premier argument, l’object qui a été itéré.