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 :

getElementsByTagName sur 1 level!


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Étudiant
    Inscrit en
    Octobre 2002
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2002
    Messages : 30
    Par défaut getElementsByTagName sur 1 level!
    Bonjour,

    J'ai un document ayant (par exemple) cette architecture. Le nombre de divs, leur ids, la profondeur de l'architecture, etc. sont aléatoires...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     <div id="toto">
         <div id="baba"></div>
         <div id="kiki">
              <div id="zouzou"></div>
              <div>
                   <div id="riri"></div>
              </div>
              <div id="fifi"></div>
         </div>
         <div id="loulou"></div>
         <div id="froufrou"></div>
     </div>
    J'ai cette fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function ShowOrder(id){
    	var showorder = false;	
    	var im = document.getElementById(id).getElementsByTagName('div'); 
    	for(i=0;i<im.length;i++){ 
    	   if(showorder) showorder = showorder + ',' + im[i].id;
    	   else showorder = im[i].id;
    	   }
    	alert(showorder);
    	}
    le résultat de ShowOrder('toto') est:
    baba,kiki,zouzou,,riri,fifi,loulou,froufrou

    Donc ma question, comment modifier ma fonction afin qu'elle n'affiche que les <div> de "premier niveau"?

    1er exemple, ShowOrder('toto') afficherait:
    baba,kiki,loulou,froufrou

    2ème exemple, ShowOrder('kiki') afficherait:
    zouzou,,fifi

    Merci d'avance!

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Par défaut
    En regardant pour chaque élément qui est le parentNode (tel parent représentant tel niveau).

  3. #3
    Membre éclairé Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function ShowOrder(id){
    	var showorder = false;	
    	var children = document.getElementById(id).childNodes(); 
    	for(i=0;i<children.length;i++){ 
                    if (children[i].tagName == 'DIV') {
    	         if(showorder) showorder = showorder + ',' + children[i].id;
    	         else showorder = children[i].id;
    	   }
                   }
    	alert(showorder);
    	}

  4. #4
    Membre averti
    Étudiant
    Inscrit en
    Octobre 2002
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2002
    Messages : 30
    Par défaut
    Merci beaucoup pour la solution, j'ai bien mon baba,kiki,loulou,froufrou qui s'affiche

    Pour ceux qui tomberont sur ce topic un jour, remplacez cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var children = document.getElementById(id).childNodes();
    par celle la:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var children = document.getElementById(id).childNodes;
    Merci encore!

  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
    variante?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function ShowOrder(idi){
     
    	var l = "";
    	var ch = document.getElementById(idi).getElementsByTagName("div");
    	for(i = 0; i != ch.length; i++){
    		if(ch[i].parentNode.id == idi){
    			l+= ch[i].id + " ";
    		}
    	}
     
    	alert(l)
    }

  6. #6
    Membre éclairé Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Par défaut
    Citation Envoyé par kakou
    Pour ceux qui tomberont sur ce topic un jour, remplacez cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var children = document.getElementById(id).childNodes();
    par celle la:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var children = document.getElementById(id).childNodes;
    Exact
    Désolé pour l'erreur...

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

Discussions similaires

  1. Segmentation level set sur des images 3D+T
    Par saracen dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 24/04/2011, 20h34
  2. Réponses: 4
    Dernier message: 21/04/2011, 16h19
  3. Recuperer l'ID sur un getElementsByTagName
    Par vinze60 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 15/12/2010, 13h11
  4. getElementsbyTagName sur un fichier XML sous IE
    Par BkD35 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/12/2007, 11h30
  5. Réponses: 3
    Dernier message: 05/11/2006, 13h19

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