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] masquer élément créé dans le script


Sujet :

JavaScript

  1. #1
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut [DOM] masquer élément créé dans le script
    Bonjour,

    dans une page je voudrai faire la chose suivante :

    lorsque je clique sur un lien, je crée un nouveau div avec un texte quelconque dedans. Si plusieurs div ont été créé (en cliquant sur le lien prévu à cet effet), je veux que les div déjà créés ne soient pas affichés afin que l'on ne voit QUE le dernier div créé. Voici le code que j'utilise :

    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
     
    		var NbDiv = 0;
     
    		function AjoutDiv(){
    			var NomNewDiv = prompt('Nom du calque à ajouter');
    			if (NomNewDiv != null){
     
    				NbDiv++;
     
    				for(var i=0;i<NbDiv;i++){
    				  var s = "T"+i;
                                     getElementById(s).style.display='none';
    				}
     
    				var a = document.getElementById("DetailDiv");
    				a.innerHTML += "<div id=T"+NbDiv+">D&eacute;tail 0 "+NomNewDiv+"</div>";				
    			}
    		}
    or, apparemment, la ligne getElementById(s).style.display='none'; ne fonctionne pas...

    Auriez vous une idée ? merci de votre aide !!!

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    tu te préoccupes seulement de l'"affichage" des anciens div ou tu veux les supprimer de la page? (je penche pour la 2e vu que tu n'as aucune référence claire à ces div pour changer ultérieurement leur display...)

  3. #3
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    à part ça, tu oublies "document. " au début de la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getElementById(s).style.display='none';
    et l'affectation du dernier div est très sale (moralement );
    renseigne-toi sur la méthode dom appendChild()

  4. #4
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut
    Je ne veux que masquer les anciens div et pas les effacer...

    Par contre, même avec document au début de la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById(s).style.display='none';
    ça ne marche pas... :-(

    et est-ce que c'et "moralement" acceptable d'utiliser les fonctions de node alors que mon document n'est pas du XML ?

    Merci !

  5. #5
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    par exemple, fais ceci:



    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
    30
    31
    32
    33
    34
    35
    <script  type="text/javascript">
     
    var NbDiv = 0, NomNewDiv, d;
     
    function AjoutDiv(cadre){
     
    	NomNewDiv = prompt('Nom du calque à ajouter');
     
    	if (NomNewDiv != null){
     
    		d=document.createElement("div");
    		d.id="T"+NbDiv;
    		d.appendChild(document.createTextNode("D&eacute;tail 0" + NomNewDiv)); 
     
    		cadre.appendChild(d);				
     
    		for(i=0; i != NbDiv; i++){
    			document.getElementById("T"+i).style.display='none';
    		}
     
    		NbDiv++;	
    	}
    }
     
    </script>
     
    </head>
     
    <body>
     
    <div>
    <a href="#" onclick="AjoutDiv(document.getElementById('DetailDiv'));return false">ajout</a>
    </div>
     
    <div id="DetailDiv"></div>
    En fait, dans ton code, tu incrémentais NbDiv avant d'insérer un nouveau div;
    du coup, tu demandais un display : none pour un élément qui n'existait pas encore, d'où l'erreur de script, spécifiée dans tous les navigateurs;

  6. #6
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut
    ça marche très bien...

    je ne t'en demandais pas tant, mais ça me rend bien service...

    un grand MERCI !!!!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/01/2015, 09h13
  2. Donner des id automatiques aux éléments à insérer dans le DOM
    Par Xeuch dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 04/04/2013, 12h23
  3. Afficher/Masquer élément au chargement dans un formulaire dynamique
    Par titinesaku dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 01/06/2011, 17h50
  4. [DOM] Insertion élément de formulaire dans page html
    Par seïna dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 24/09/2008, 23h22
  5. ajouter élément XML dans fichier existant DOM
    Par Hyst76 dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 15/10/2007, 18h27

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