Je suis juste en train de monter à JQuery et je rencontre des problèmes de comprendre ce que c'est. Comment utiliser l'indexation de style Array sur un objet JQuery, mais JQuery n'est pas un tableau? Est-ce une chose javascript?
4 Réponses :
Une collection de jQuery est un objet avec des propriétés numérotées comme des index de tableau (et d'autres propriétés et méthodes), tenant chacune un des éléments appariés. Il est également donné une propriété de longueur pour vous dire combien d'éléments correspondent au sélecteur. Voir http://api.jquerery.com/types/#jQuery P>
Également, oui, c'est en partie une chose javascript - JS vous permet d'accéder aux propriétés d'un objet avec notation de points ou avec notation de support carré. P>
Désolé mais j'ai des problèmes imaginants ce que vous dites. Vous dites que jQuery est comme jquery.0 = "valeur", jquery.1 = "valeur"?
Non. jQuery () code> ou $ () code> est une fonction qui renvoie un objet de collection JQuery. Cet objet a été conçu pour avoir un tableau comme des propriétés, mais n'est pas un tableau. var mydivcollection = $ ('div'); // myDIVCollection est maintenant contenant un objet de collection avec toutes les balises div de la page de la structure décrite dans le lien que j'ai mis dans ma réponse code>
Désolé, je suis un peu lent parfois mais je viens de l'avoir: jqueryObject ["2"] = "valeur"; // crée une propriété appelée 2 alerte (JqueryObject [2]); // affiche "valeur"
La lenteur est ok. :) Alors tu l'as sous contrôle maintenant?
Eh bien, je regarde la version de Dev de JQuery pour voir si je vois des chiffres ajoutés en tant que propriétés de l'objet JQuery et d'être attribué des éléments HTML en tant que valeurs. Si je vois ça alors je sais que je l'ai finalement eu
D'accord, il est donc confirmé. Dans le code JQuery, j'ai vu du code comme celui-ci [0] = élément où "ceci" est l'objet JQUERY. A également appris que cela [0] ne signifie pas la propriété à l'index zéro d'une gamme de propriétés. Cela signifie réellement propriété nommée 0. donc si j'ai var jsobject.four = "valeur", jsObject [0] n'est pas égal à "valeur", JSOBJECT [0] n'est pas défini.
Qu'ils sont des collections signifient que vous ne pouvez pas utiliser les méthodes de tableau que JQuery n'a pas implémenté dans ses collections. Prenez des éléments = $ (sélecteur1) .Find (sélecteur2). Une console.log montrera [objet, objet, objet]. Cependant, vous ne pouvez pas utiliser des éléments.pop () ou des éléments.Shift (). Il ressemble à un tableau, se comporte dans une certaine mesure comme un tableau, mais n'est pas un type de matrice réel.
par docs , non: p>
L'objet JQuery lui-même se comporte beaucoup comme un tableau; Il a une longueur propriété et les éléments dans le objet est accessible par leur indices numériques [0] à [longueur-1]. Notez qu'un objet JQuery n'est pas En fait un objet de tableau JavaScript, donc il n'a pas toutes les méthodes d'un objet de tableau vrai tel que rejoindre (). P> blockQuote>
Wrapper de collection JQuery est un objet dans JS SENCE.
Les objets JS ont l'opérateur [] qu'en général peut accepter tout type d'index. Donc, ces affirmations sont valides: p>
var obj = {};
obj[0] = element1;
obj[1] = element2;
//...
obj[10] = element10;
// and yet
obj[false] = someValue1;
obj[true] = someValue2;
// and obviously
obj["first"] = 1; // equivalent (but not exact) of obj.first = 1;
obj["second"] = 2;
équivalent (mais pas exact) de objet.first = 1; ? Comment faire?
Ce n'est pas le cas. Mais si vous voulez utiliser des méthodes de tableau JS, comme .join () code> après un $ (...). Plan (...) code> appel, vous pouvez utiliser le < Code> $. Makearray code> qui convertit une collection JQuery en un véritable tableau JS: P>
Si vous avez installé Chrome, ouvrez la console JavaScript sur cette page et entrez: var foo = $ ("div"); console.log (foo); Jetez un coup d'œil à l'objet retourné. Cela pourrait aider.
Cela me donne juste un tableau de divs (je ne savais pas que je pouvais le faire en chrome!). Je ne vois pas où il indique comment JQuery Mimics Array Indexation.