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 :

Listes imbriquées DOM


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2021
    Messages : 2
    Par défaut Listes imbriquées DOM
    Bonjour,

    J'ai essayé plusieurs choses, mais j'avoue que je n'y arrive pas.
    J'aimerais avoir votre avis ainsi que votre aide, pour me décoincer dans mon problème.

    Je m'explique ; je voudrais créer une structure comme celle-ci pour le html:

    Code html : 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
    <ul id="liste">
      <li>Titre <span class="delete" onclick="suppr(this)">x</span>
        <ul class="sous-titre">
          <li>Sous-Titres 1 <span class="delete" onclick="suppr2(this)">x</span></li>
          <li>Sous-Titres 2 <span class="delete" onclick="suppr2(this)">x</span></li>
          <li>Sous-Titres 3 <span class="delete" onclick="suppr2(this)">x</span></li>
        </ul>
      </li>
      <li>Titre <span class="delete" onclick="suppr(this)">x</span></li>
      <li>Titre <span class="delete" onclick="suppr(this)">x</span>
        <ul class="sous-titre">
          <li>Sous-Titres 4 <span class="delete" onclick="suppr2(this)">x</span></li>
          <li>Sous-Titres 5 <span class="delete" onclick="suppr2(this)">x</span></li>
        </ul>
      </li>
    </ul>

    Pour la partie JavaScript voici mais deux fonctions :

    suppr()
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function suppr(elem) {
     liste.removeChild(elem.parentNode)
    }

    suppr2()
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function suppr2(elem) {
      var sous_title = document.querySelector("#liste ul.sous-titre");
      sous_title.removeChild(elem.parentNode);


    Mon problème et vous aller le comprendre, c'est que je ne peux pas supprimer les sous-titres 4 et 5 dans cette liste ; avez-vous une idée pour me décoincer ?

    Vous pouvez tester tout mon code en ligne : https://jsfiddle.net/hammer87/w6pfsL3g/
    Je pense que le problème vient de querySelector("#liste ul.sous-titre") sélectionne qu'un seul bloc de la classe "sous-titre", je devrais plutôt utiliser querySelectorAll("#liste ul.sous-titre") cela va tout sélectionné les blocs de la classe "sous-titre", mais je coince.

    Merci à vous

  2. #2
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Par défaut
    Bonjour,

    Code html : 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
    <ul id="liste">
      <li>Titre 1 <del>X</del>
        <ul class="sous-titre">
          <li>Sous-Titres 1 <del>X</del></li>
          <li>Sous-Titres 2 <del>X</del></li>
          <li>Sous-Titres 3 <del>X</del></li>
        </ul>
      </li>
      <li>Titre 2 <del>X</del></li>
      <li>Titre 3 <del>X</del>
        <ul class="sous-titre">
          <li>Sous-Titres 4 <del>X</del></li>
          <li>Sous-Titres 5 <del>X</del></li>
        </ul>
      </li>
    </ul>
    Code css : 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
    #liste {
      list-style:none;
      display:inline-block;
    }
    #liste li {
      position:relative;
      width:100%;
      text-align:justify;
    }
    #liste li del {
      position:absolute;
      right:-20px;
      display:inline-block;
      color: red;
      font-style: italic;
      cursor: pointer;
      text-transform: uppercase;
      text-decoration: none;
    }
    #liste li del:hover {
      text-decoration: line-through;
      font-weight:bold;
    }
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var liste_del = document.querySelectorAll('#liste li > del');
    liste_del.forEach( function(del){
      del.addEventListener('click', function(){
        this.parentNode.remove(); // supprime le noeud parent
      })
    });

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2021
    Messages : 2
    Par défaut
    Bonsoir,


    Je peux que te féliciter pour ta solution ça me convient parfaitement, c'est plus propre et optimiser, au niveau du code.


    Sinon j'ai trouvé la solution à ma version-là même pas (10 min)"; mais c'est encore du code à rallonge, et je ne suis pas sûre que d'autres développeurs prendrais du plaisir à le lire ; en tout cas, j'adopte ton code ;


    Encore merci

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

Discussions similaires

  1. [Taglib / JSP / Javascript] Liste imbriquées
    Par Resyek dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 12/05/2006, 21h26
  2. [VBA-E]Listes Imbriquées : comment optimiser?
    Par hey_chuck dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/03/2006, 21h50
  3. Présentation dans des listes imbriquées
    Par Ghusse dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 29/09/2005, 09h35
  4. [XHTML] Listes imbriquées valides ?
    Par Amon dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 23/09/2005, 23h05
  5. [CSS] listes imbriquées et conformité W3C
    Par rapathonyk dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 25/07/2005, 09h40

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