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 :

Supprimer des �l�ments du DOM


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    120
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 120
    Par d�faut Supprimer des �l�ments du DOM
    bonjour,
    j'ai une fonction javascript qui affiche une table lorsque l'on clique sur un bouton
    <div id="button_addtitles" onclick="show_titles(numero,'login')">Afficher les titres</div>
    l'affichage de la table se passe tr�s bien, et je supprime alors ce bouton afficher pour mettre un bouton "Masquer les titres" mon div devient donc
    <div id="button_close_titles" onclick="close_titles(numero)">Masquer les titres</div>
    le probl�me c'est que lorsqu'on cliquer sur "masquer les titres" plus rien ne se passe

    voici le d�tail de la fonction pour masquer les titres : close_titles(num)

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    function close_titles(num)
    {
    	alert("ça fonctionne à ce niveau");
    	tbody_titles = "tbody"+num;
                 var eltn = document.getElementById(tbody_titles);
                 while(eltn.hasChildNodes())
                 eltn.removeChild(eltn.firstChild);
    }
    j'ai mis un "alert" pour voir si cette fonction javascript s'ex�cutait bien, mais d�j� il ne m'affiche m�me pas le message d'alerte javascript, donc j'imagine que la suite ne peut pas s'ex�cuter

    quelqu'un a une id�e ? je me casse la tete la-dessus depuis plusieurs jours ?

    j'utilise Firefox

    Merci si quelqu'un peut m'aider

  2. #2
    Mod�rateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par d�faut
    Bonjour,
    il ne suffit d'�crire onclick="..." pour qu'il soit pris en compte...
    Montres nous comment tu cr�es ton nouveau bouton.

    Mais plut�t que de supprimer et cr�er un bouton diff�rent pourquoi ne pas masquer/afficher suivant le cas avec la propri�t� display du style de l'objet...

  3. #3
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par d�faut
    comme le dit NoSmoking
    utilise un display block ou non pour montrer ou cacher test titres c'est beaucoup moins co�teux que de cr�er supprimer.

    en suite sur ton tableau tu mets les titres dans un thead
    et non dans le tbody
    ainsi il te suffit de changer la classe du thead pour montrer cacher les titres

    et c'est plus conforme HTML

    je pense que ton pb vient de la variable
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <div id="button_close_titles" onclick="close_titles(numero)">Masquer les titres</div>
    ce code est �quivalent � ceci
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <div id="button_close_titles" >Masquer les titres</div>
    et
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    document.getElementById('').onclick=function () {
       close_titles(numero);
    }
    lorsque tu mets onclick dans ta balise le navigateur cr�� un fonction anonyme comme le code ci dessus

    lorsque tu clique sur ton bouton c'est cette fonction qui est invoqu�e
    tu vois donc que cette fonction en s'ex�cutant va tomb� sur la ligne
    l'interpr�te javascript �value la variable numero si celle-ci n'existe pas l'interpr�te l�ve une exception et arr�te l'ex�cution de la fonction anonyme.
    la fonction close_titles n'est pas appel�e

    A+JYT

  4. #4
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Citation Envoy� par sekaijin
    l'interpr�te javascript �value la variable numero si celle-ci n'existe pas l'interpr�te l�ve une exception et arr�te l'ex�cution de la fonction anonyme.
    A noter que ce n'est pas le cas pour les propri�t�s d'objets non d�finies
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    alert(window.toto);    // => 'undefined'
    alert(toto);    // Erreur levée et script stoppé
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  5. #5
    Membre confirm�
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    120
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 120
    Par d�faut
    merci pour vos �l�ments de r�ponse ; je vais retester tout cela et surtout essayer d'utiliser les display block qui effectivement seront plus simples

  6. #6
    Membre confirm�
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    120
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 120
    Par d�faut
    je rebondis sur le commentaire de sekaijin car je veux quand m�me r�ussir � programmer jusqu'au bout en suppression/creation pour voir si je peux faire fonctionner une fonction en dynamique

    j'ai v�rifi� avec Firebug que logiquement au moment ou il est cens� executer ma variable close_titles(numero), la variable numero existe bien, mais peut-�tre dois-je indiquer window.numero � la place de num�ro ?


    je vous ai indiqu� ci-dessous le code exact de mes deux fonctions show_titles et close_titles


    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
    24
    25
    26
    27
    28
    29
    function show_titles(num_alb,log_session)
    {
     if (num_alb!=0) {
     var tablesel_titles = get_select_xml('media_disco_titles','numero','Num_album',num_alb);
     text_div_show_titles = "show_titles"+num_alb;
     var div_show_titles = document.getElementById(text_div_show_titles);
     
     if (tablesel_titles!=0){
        div_show_titles.appendChild(CreateTableArraySimple(tablesel_titles,num_alb,log_session));
        text_button_add_titles = "button_add_titles"+num_alb;
        var elt = document.getElementById(text_button_add_titles);
        elt.parentNode.removeChild(elt);
     
        var button_close_titles = document.createElement('div');
        text_button_close_titles = "button_close_titles"+num_alb;
        button_close_titles.setAttribute("id",text_button_close_titles);
    	button_close_titles.setAttribute("title","Cliquez pour masquer");
    	text_parametres = "close_s_titles(" + num_alb + ")";
        button_close_titles.setAttribute("onclick",text_parametres); // pour firefox
        button_close_titles.onclick=text_parametres; // pour IE
    	button_close_titles.setAttribute("style","cursor:pointer;");   
        text_parent_button_add_titles = "parent_button_add_titles"+num_alb;
        var parent_button_add_titles = document.getElementById(text_parent_button_add_titles);
        var text_masquer_titles = document.createTextNode("Masquer les titres");
        button_close_titles.appendChild(text_masquer_titles);
        parent_button_add_titles.appendChild(button_close_titles);
     }
      else {alert("Aucun titre saisi pour cet album!");}
     }

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    function close_s_titles(num_alb)
    {
    	tbody_titles = "tbody"+num_alb;
        var eltn = document.getElementById(tbody_titles);
        while(eltn.hasChildNodes())
        eltn.removeChild(eltn.firstChild);
        }

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [DOM]Supprimer des �l�ments d'une page HTML
    Par witch dans le forum G�n�ral JavaScript
    R�ponses: 5
    Dernier message: 05/02/2009, 16h37
  2. Supprimer des �l�ments d'une liste
    Par espadon1 dans le forum Langage
    R�ponses: 2
    Dernier message: 31/05/2006, 15h08
  3. R�ponses: 7
    Dernier message: 16/05/2006, 15h40
  4. Supprimer des �l�ments dans une TreeView ?
    Par souch dans le forum Composants VCL
    R�ponses: 4
    Dernier message: 16/09/2005, 12h20
  5. Supprim� des �l�ments vide d'un tableau
    Par shinux2004 dans le forum Langage
    R�ponses: 4
    Dernier message: 04/07/2005, 19h40

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