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] Suppression dynamique DOM


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2007
    Messages : 63
    Par défaut [DOM] Suppression dynamique DOM
    Bonjour,

    Voila j'ai un document HTML de cette forme.

    <span>
    <label>TextNode</label>
    <div class='droite'>
    <img ... />
    <input type'hidden' ... />
    </div>
    </span>
    <span>
    ....
    </span>
    dans la balise img il y a onclick="this.parentNode.parentNode.removeChild(this.parentNode)"

    Le problème c'est que çà supprime juste la <div class='droite'> et son contenu.

    Ce que je voudrais c'est que çà supprime la span (avec en conséquence le label). Si je remplace onclick="this.parentNode.parentNode.removeChild(this.parentNode)" par
    onclick="this.parentNode.parentNode.parentNode.removeChild(this.parentNode)"

    j'ai une erreur : "Node was not found" code: "8"

    Merci de votre aide

  2. #2
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    il faut que tu remonte sur la span et delete le first child



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="this.parentNode.parentNode.removeChild(this.parentNode.parentNode.firstChild)"

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2007
    Messages : 63
    Par défaut
    Merci de ton conseil.

    En fait ta réponse supprime le premier élément du span mais pas le span entier d'un coup malheureusement.

    Et pourquoi le this.parentNode.parentNode.parentNode.removeChild ne fonctionne pas ...

    Merci encore

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    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 : 13 474
    Par défaut
    Bonjour,
    il semble manquer un parentNode : tu ne remontes qu'au span (et non à son parentNode), et tu ne dois donc supprimer que le label, actuellement ....

    NB : dans la syntaxe donnée, il faut que le span soit le 1° élément de son parentNode ...

    A+

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2007
    Messages : 63
    Par défaut
    Merci de votre aide.

    J'ai trouvé la solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode)
    ou 
    this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode.parentNode.firstChild)
    Ce qui montre en toute franchise que je n'ai rien compris à son utilisation. J'en profite pour vous demander une petite explication.

    avec this.parentNode.parentNode.parentNode.removeChild -> je remonte jusqu'à la span. Pourquoi il faut que je mette removeChild(this.parentNode.parentNode) soit une parentNode de moins bref je comprends pas ...

    Merci pour cette explication car c'est obscur la

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Par défaut
    Avec la première instruction tu ne remonte pas au span mais à son parent, auquel tu viens "enlever un enfant" (removechild) ensuite entre les parenthèse tu lui expliques lequel de ses enfants tu veux lui enlever, donc forcément un cran moins loin.

    C'est pas facile à expliquer...

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

Discussions similaires

  1. [DOM]Créer dynamiquement du HTML à partir d'une chaîne
    Par jothi35 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/08/2006, 20h01
  2. [DOM]Suppression attribut html
    Par kobe dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/07/2006, 10h49
  3. [DOM] - Suppression de noeud.
    Par jacquesh dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 17/02/2006, 11h34
  4. [DOM] help sur Dom et suppression de Child
    Par grinder59 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/01/2006, 07h32
  5. [DOM] Génération dynamique fichier xml
    Par Fabouney dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 03/10/2005, 09h45

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