IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques & Frameworks Discussion :

Boucler sur un élément <ul> [Prototype]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 178
    Points : 122
    Points
    122
    Par défaut Boucler sur un élément <ul>
    Bonjour à tous,
    je ne connais pas tres bien prototype (plutot habitué à JQuery)...

    Et là, je m'arrache les cheveux sur une question de débutant :
    J'ai une liste, formée comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <ul id="continent">
     
    <li>UE</li>													
    <li>EUROPEHUE</li>												
    <li>AMERIQUECE</li>												
    <li>MOYENORIEN</li>											
    <li>OCEANIE</li>												
    <li>EXTREMEORI</li>												
    <li>AMERIQUESU</li>												
    <li>AMERIQUECA</li>															
    <li>AMERIQUENO</li>
     
    </ul>
    Et d'ici, je veux donc simplement boucler sur les <li> de mon id 'continent' pour modifier la classe de celui qui m'intéresse.

    J'ai tenté plusieurs choses, notamment :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('continent').select('li').each(function(e) {})
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('continent').each(function(element) {})
    mais rien n'y fait.

    Merci de m'aider...

  2. #2
    Membre expérimenté
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Points : 1 333
    Points
    1 333
    Par défaut
    Citation Envoyé par arnogb69 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <ul id="continent">
     
    <li>UE</li>													
    <li>EUROPEHUE</li>												
    <li>AMERIQUECE</li>												
    <li>MOYENORIEN</li>											
    <li>OCEANIE</li>												
    <li>EXTREMEORI</li>												
    <li>AMERIQUESU</li>												
    <li>AMERIQUECA</li>															
    <li>AMERIQUENO</li>
     
    </ul>
    Et d'ici, je veux donc simplement boucler sur les <li> de mon id 'continent' pour modifier la classe de celui qui m'intéresse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('continent').select('li').each(function(e) {})
    C'est bien ce qu'il faut faire ; quel est le problème exactement ?
    Note : si tu es habitué à javascript, tu peux aussi faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $$("#continent li").each(function(li) {
     
    });
    Edit: si tu es habitué à jquery, tu peux aussi faire...
    on ne dit pas "ça ne marche pas" on dit "je suis incapable de faire fonctionner correctement les outils mis à ma disposition"
    Pas de question technique par MP

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 178
    Points : 122
    Points
    122
    Par défaut
    Citation Envoyé par gwyohm Voir le message
    C'est bien ce qu'il faut faire ; quel est le problème exactement ?
    Note : si tu es habitué à javascript, tu peux aussi faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $$("#continent li").each(function(li) {
     
    });
    J'ai tenté le $$, mais firebug me jette une erreur

    Mon problème est simple : je ne rentre jamais dans ma boucle...

  4. #4
    Membre expérimenté
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Points : 1 333
    Points
    1 333
    Par défaut
    J'ai tenté le $$, mais firebug me jette une erreur
    Quelle erreur ?
    tu as bien prototype inclus ?
    et sans jQuery ... ou avec le mode no conflict ?
    Tu es sur qu'au moment où ta fonction est appelée, le ul existe avec ses li ?
    on ne dit pas "ça ne marche pas" on dit "je suis incapable de faire fonctionner correctement les outils mis à ma disposition"
    Pas de question technique par MP

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 178
    Points : 122
    Points
    122
    Par défaut
    Alors, dans l'ordre, l'erreur est "uncaught exception: [Exception... "Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIDOMXPathEvaluator.evaluate]" nsresult: "0x80070057 (NS_ERROR_ILLEGAL_VALUE)" location: "JS frame :: http://monprojet/js/prototype/prototype.js :: anonymous :: line 1528" data: no]"'

    Oui, j'ai bien prototype inclus, mais par contre, j'ai jQuery, et je ne sais pas à quoi correspond le mode no conflict

    Enfin, je suis sûr qu'ils existent car la fonction est appelée sur un onclick sur mes li justement.

    Pour info, je bosse sur du Magento...

  6. #6
    Membre expérimenté
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Points : 1 333
    Points
    1 333
    Par défaut
    Si prototype et jquery sont sur la même page, tu peux avoir des conflits...
    jette un oeil à
    http://docs.jquery.com/Using_jQuery_...ther_Libraries
    on ne dit pas "ça ne marche pas" on dit "je suis incapable de faire fonctionner correctement les outils mis à ma disposition"
    Pas de question technique par MP

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 178
    Points : 122
    Points
    122
    Par défaut
    j'étais en train de fouiller ça en effet...
    le problème est que ça me fait manipuler jQuery, et non prototype du coup, ce qui n'est pas forcément ce que je souhaite

    Edit : NON, on peut utiliser les 2...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <html>
     <head>
       <script src="prototype.js"></script>
       <script src="jquery.js"></script>
       <script>
         var $j = jQuery.noConflict();
     
         // Use jQuery via $j(...)
         $j(document).ready(function(){
           $j("div").hide();
         });
     
         // Use Prototype with $(...), etc.
         $('someid').hide();
       </script>
     </head>
     <body></body>
     </html>

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 178
    Points : 122
    Points
    122
    Par défaut
    OK, tout fonctionne désormais.
    Il s'agissait en effet d'un souci de conflit entre les deux bibliothèques

    Merci bien gwyohm

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Boucler sur les éléments d'un ListView avec For Each
    Par c.piette dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/04/2015, 14h53
  2. [XSLT 1.0] Comment boucler sur les infos d'un élément précis
    Par Janko dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 18/06/2012, 13h45
  3. Boucler sur les éléments
    Par joums dans le forum jQuery
    Réponses: 4
    Dernier message: 11/04/2011, 17h01
  4. boucler sur des éléments de formulaire
    Par cedrick21 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/02/2010, 11h09
  5. [VB6] Comment boucler sur des controls d'un form ?
    Par lankviller dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 27/01/2003, 16h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo