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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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

+ 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