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] R�cup�rer l'id d'un noeud parent - DOM


Sujet :

JavaScript

  1. #1
    Membre �clair�
    Inscrit en
    Juillet 2006
    Messages
    747
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 747
    Par d�faut [DOM] R�cup�rer l'id d'un noeud parent - DOM
    Bonjour , voici mon probl�me :

    j'ai l'arborescence suivante :

    tr - id = 'id_du_tr'
    \
    td
    \
    table - id= 'mois_courant'

    var Mois_courant = document.getElementById('mois_courant').id;

    Voila je voudrais pouvoir r�cup�rer l'id du tr a partir de l'element table dont l'id est mois_courant en utilisant ParentNode et compagnie.
    J'esp�re avoir �t� assez clair

    Merci

  2. #2
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    dans la balise table:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    onclick="alert(this.parentNode.parentNode.id)"
    le premier parentNode �tant le td contenant le table
    le second �tant le tr contenant le td ...
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  3. #3
    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,
    Citation Envoy� par identifiant_bidon Voir le message
    J'esp�re avoir �t� assez clair
    moyen, mais si c'est une table incluse dans un td :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    alert(document.getElementById('mois_courant').parentNode.parentNode.id);
    1� parentNode => td
    2� parentNode => tr

    A+

  4. #4
    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
    Spaffy E.bzz, je suis daccord avec vous pour le parentNode.parentNode, mais dans le cas ou son �l�ment se trouverait dans d'autres balises ? p , div et autres ?

    j'aurais plut�t utilis� une fonction r�cursive :

    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
    36
    37
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans nom</title>
    <script type="text/javascript">
    function trouveLigneParente(MonElement){
    	var Parent = MonElement.parentNode ;
    	if(Parent.tagName != "TR"){
    		temp = trouveLigneParente(Parent);
    	}
    	else{
    		temp = Parent;
    	}
    	return temp;
    }
    </script>
    </head>
     
    <body><table width="100%" border="1">
      <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr id="toto">
        <td>&nbsp;</td>
        <td><div><input type="button" value="Trouve ma ligne" onclick="alert(trouveLigneParente(this).id)" /></div></td>
      </tr>
    </table>
     
    </body>
    </html>

  5. #5
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    Exact Le_Chom, mais ce n'est pas le structure qu'il nous � indiqu� ...

    j'apporterais une petit pr�caution � prendre au niveau de ton script
    en focntion de navigateurs je ne suis jamais sur de la casse de la balise, je pr�f�re donc


    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    if(Parent.tagName.toLowerCase() != "tr")
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  6. #6
    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
    Merci de ces pr�cisions pour le toLowerCase() j'ai justement eu l'erreur en codant le script :p .
    Pour la fonction je l'ai donn�e , � titre d'information pour que sa structure soit plus g�n�rique

  7. #7
    Membre �clair�
    Inscrit en
    Juillet 2006
    Messages
    747
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 747
    Par d�faut
    Dans la continuit� de ma premi�re question :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	var row = document.createElement("tr");
     
        for (var i = 1; i <= 28; i++) {
            cell = document.createElement("td");
            texte = document.createTextNode("M");
            cell.appendChild(texte);
            row.appendChild(cell);
         }
     
    	document.getElementById('mois_courantFevrier').appendChild(row);
    	document.getElementById('mois_courantFevrier').setAttribute("border", "1");
    Ce code fonctionne a merveille sous firefox mais pas du tout sous IE7. mois_courantFevrier est l'id d'un tbody.
    Est-ce que qq'un a une id�e de ce qui ne va pas avec IE ???
    Merci

  8. #8
    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
    �trange : je viens de tester :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    <input type="button" value="test" onclick="test()" />
     
    <table width="100%" border="1" >
    <tbody id="mois_courantFevrier">
    </tbody>
    </table>
    avec ton code et cela marche parfaitement sous ie7/firefox par contre si j'assigne l'id sur le tableau directement effectivement �a n'affiche rien sous ie7 MAIS ! en faisant un alert(document.getElementById('mois_courantFevrier').innerHTML) juste apr�s le
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    document.getElementById('mois_courantFevrier').appendChild(row);
    j'ai bien mon code g�n�r� dans la source

  9. #9
    Membre �clair�
    Inscrit en
    Juillet 2006
    Messages
    747
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 747
    Par d�faut
    Autant pour moi, il s'agissait d'une erreur de ma part.

    Au moins, on aura appris que si on met pas de TBODY avec un id dessus, �a marche pas avec IE

  10. #10
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    il faut juste toujours appender dans le tbody ...
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  11. #11
    Membre �clair�
    Inscrit en
    Juillet 2006
    Messages
    747
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 747
    Par d�faut
    Autrement question subsidiaire : me sera-t-il possible avec le code donn� ci dessus de g�rer des evenements tels que onclick, onmouseover, ... sur les cellules que j'ai cr�� (pour en changer la couleur par exemple) ??? Et cela fonctionnera-t-il avec les 2 principaux navigateurs ??

  12. #12
    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
    oui tu as juste a ajouter les �v�nement au moment de la cr�ation de tes cellules/lignes et oui ce sera compatible ie/firefox

  13. #13
    Membre �clair�
    Inscrit en
    Juillet 2006
    Messages
    747
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 747
    Par d�faut
    Ok merci pour les renseignements.

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

Discussions similaires

  1. [SimpleXML] R�cup�rer un noeud parent
    Par persia dans le forum Biblioth�ques et frameworks
    R�ponses: 3
    Dernier message: 14/04/2009, 20h38
  2. [DOM] Recuperer l'index d'un noeud dans sont parent (DOM)
    Par Dougui_bzh dans le forum G�n�ral JavaScript
    R�ponses: 9
    Dernier message: 10/07/2008, 09h21
  3. [DOM] R�cup�rer le nom du premier noeud d'un fichier XML en PHP
    Par ePsymon dans le forum Biblioth�ques et frameworks
    R�ponses: 2
    Dernier message: 08/02/2008, 09h17
  4. [DOM] r�cup�rer un noeud particulier
    Par julien.63 dans le forum Biblioth�ques et frameworks
    R�ponses: 2
    Dernier message: 30/01/2008, 18h41
  5. [DOM] DOM : R�cup�rer un �l�ment parent
    Par atar64 dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 10/07/2007, 09h34

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