Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > Prototype & Script.aculo.us
Prototype & Script.aculo.us Forum d'entraide sur les frameworks Prototype et Script.aculo.us
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/06/2008, 10h35   #1
Nouveau Membre du Club
 
Inscription : juin 2006
Messages : 45
Détails du profil
Informations personnelles :
Localisation : France, Seine Maritime (Haute Normandie)

Informations forums :
Inscription : juin 2006
Messages : 45
Points : 36
Points : 36
Par défaut [Prototype] Typage Array et $$()

Bonjour,

J'utilise Prototype, et je souhaite transformer un objet de type HTMLCollection en Array.

En effet, je récupère cet objet de type HTMLCollection avec la méthode $$() :

Code :
1
2
3
 
elements = $$('#mail div.hideme'); // Je récupère mes éléments HTML
alert(elements.length); // M'affiche bien le nombre d'élements que je souhaite.
Et je voudrais caster mon HtmlCollection en Array pour pouvoir utiliser les méthodes de l'objet Array, telle que Array.last() par exemple.

Connaissez vous une méthode permettant de faire ca?
George Abidbol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2008, 10h45   #2
Responsable Modération
 
Homme
Inscription : janvier 2007
Messages : 9 316
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2007
Messages : 9 316
Points : 15 522
Points : 15 522
Bonjour,
a priori, $$() te retourne déjà un array : le .length t'annonce le nombre d'éléments de ce tableau.

Mais peut-être ai-je mal compris ta question

A+
E.Bzz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2008, 10h46   #3
Modérateur
 
Avatar de DoubleU
 
Inscription : janvier 2006
Messages : 1 107
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 1 107
Points : 1 118
Points : 1 118
t'as la méthode $A qui le fait explicitement aussi
DoubleU est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2008, 10h59   #4
Nouveau Membre du Club
 
Inscription : juin 2006
Messages : 45
Détails du profil
Informations personnelles :
Localisation : France, Seine Maritime (Haute Normandie)

Informations forums :
Inscription : juin 2006
Messages : 45
Points : 36
Points : 36
@E.Bzz : oui c'est ce que je pensais aussi mais apparament non.

Dans la doc :

Citation:
$$() :
Takes an arbitrary number of CSS selectors (strings) and returns a document-order array of extended DOM elements that match any of them.
Mon code pour tester la valeur de retour :

Code :
1
2
3
4
5
6
 
elements = new Array();
if(Object.isArray(elements)) alert('isarray'); else alert('isNOTarray'); // Affiche bien isarray (heuresement !)
 
elements = $$('#mail div.hideme');
if(Object.isArray(elements)) alert('isarray'); else alert('isNOTarray'); // Affiche isNOTarray
Ca retourne une collection, mais pas un tableau de type Array

@DoubleU

Merci, c'est ca.

Code :
1
2
3
4
5
 
elements = $$('#mail div.hideme');
array_elements = $A(elements);
last_element = array_elements.last();
alert(last_element.id);
Ca m'affiche bien l'id de mon dernier élément.

Marci bacoup pour le coup de pouce !
George Abidbol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2008, 11h06   #5
Responsable Modération
 
Homme
Inscription : janvier 2007
Messages : 9 316
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2007
Messages : 9 316
Points : 15 522
Points : 15 522
Citation:
Envoyé par DoubleU Voir le message
t'as la méthode $A qui le fait explicitement aussi


Moi, les librairies ...

A+
E.Bzz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h49.


 
 
 
 
Partenaires

Hébergement Web