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

JavaScript Discussion :

[DOM] Boucler sur des <li>


Sujet :

JavaScript

  1. #1
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut [DOM] Boucler sur des <li>
    Bonjour,

    j'aimerais boucler sur tous les <li> d'un div précis comme ci-dessous afin d'afficher la valeur href :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <div id="truc">
    <ul>
    	<li><a href="a.html">A</a></li>
    	<li><a href="b.html">B</a></li>
    	<li><a href="c.html">C</a></li>
    	<li><a href="d.html">D</a></li>
    	<li><a href="e.html">E</a></li>
    </ul>
    </div>
    Malheureusement, mon code ne fonctionne pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var menu = document.getElementById('menu');
    var ul = menu.childNodes.firstChild;
    var nbLi = ul.childNodes.length;
    for (var num=0; num<nbLi; i++) {
    	var a = ul.li[num].a
    	var href = a.getAttribute('href');
    	alert(href);
    }
    Pourriez-vous m'indiquer ce qui ne va pas ?
    Merci d'avance

    @+

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var menu = document.getElementById('menu');
    tu n'as pas d'id menu ... truc plutot non ?

    ensuite eviter les firstchild pou rde raisons de différence d'interprétation du DOM selon les browser


    je proposerais plus simplement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var menu = document.getElementById('truc');
    var TabLi = menu.getElementsByTagName('li');
    for (var num=0; num<TabLi.length; i++) {
    	alert(TabLi[num].href);
    }
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 247
    Points : 276
    Points
    276
    Par défaut
    +1
    Conception et hébergement de votre site Web : http://www.jvprod.fr !

  4. #4
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    Merci beaucoup SpaceFrog !!!
    voici mon code après quelques rectification :
    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
    19
    20
    21
    22
    23
    <div id="menu">
    <ul>
    	<li><a href="accueil.html">Accueil</a></li>
    	<li><a href="b.html">B</a></li>
    	<li><a href="c.html">C</a></li>
    	<li><a href="d.html">D</a></li>
    	<li><a href="e.html">E</a></li>
    </ul>
    </div>
    <script type="text/javascript" language="javascript">
    <!--
    var url = window.location.href;
    var menu = document.getElementById('menu');
    var aLi = menu.getElementsByTagName('li');
    var nbLi = aLi.length;
    for (var num=0; num<nbLi; num++) {
    	var aA = aLi[num].getElementsByTagName('a');
    	var href = aA[0].href;
     
    	if (url == href) aLi[num].className = "active";
    }
    // -->
    </script>
    Cela me permet d'inclure ce menu dans toutes mes rubriques sans avoir a le retoucher page par page pour appliquer une régle CSS sur la rubrique active...

    Vous en pensez quoi ? utile ou pas ?

    Merci
    @+

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    et si javascript n'est pas activé ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre actif
    Inscrit en
    Octobre 2005
    Messages
    908
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 908
    Points : 271
    Points
    271
    Par défaut
    et ben... pas de mise en forme...
    et puis c'est pour un back-office.

    peut être en PHP alors ?

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

Discussions similaires

  1. boucler sur des enum
    Par Haywire dans le forum Langage
    Réponses: 2
    Dernier message: 05/03/2008, 21h38
  2. [XSLT] boucler sur des attributs
    Par damyrid dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 30/03/2006, 10h43
  3. Boucler sur des champs texte
    Par syl2095 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/11/2004, 16h15
  4. boucler sur des checkboxes
    Par El Saigneur dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 09/10/2004, 08h27
  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