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 je pense]accéder à des éléments d un tableau sans id


Sujet :

JavaScript

  1. #1
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut [dom je pense]accéder à des éléments d un tableau sans id
    bonjour, jai une structure du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <table>
      <tr>
        <td>
          <img src="fleche.jpg" onclick="javascript:showhide(this)"/>
        <td>
        <td/>
      </tr>
      <tr>
        <td>
          <table>...et ainsi de suite
        </td>
      </tr>
    </table>
    ce tableau est fabriqué dynamiquement à partir d un script xsl afin de présenter sousforme tabulaire les champs et valeurs des champs d un xml et son shéma...
    le truc est que je voudrais pouvoir cacher ou montrer le td contenant un table lorsque je clic sur l image dutd d au dessus...
    je ne sais pas s il y a dans le DOM des methodes parent ou des trucs ds le genre...
    le but étant, pour ceux qui connaissent, de pouvoir afficher mes données comme le fait XMLSPY en grid

    je précie que dans aucune de mes cellules il n y a d id ou quoique ce soit de reconnaissable
    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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementsByTagName('...')
    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

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut Re: [dom je pense]accéder à des éléments d un tableau sans i
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <table>
      <tr>
        <td>
          <img src="fleche.jpg" onclick="showhide(this.parentNode.parentNode.parentNode)"/>
        <td>
        <td/>
      </tr>
      <tr>
        <td>
          <table>...et ainsi de suite
        </td>
      </tr>
    </table>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function showhide(elementTable) {
      with(elementTable.getElementsByTagName('table')[0].style){
        .display=(.display="none"?"block":"none")
      };
    }
    Quelque chose comme ça

    à vérifier juste que getElementsByTagName ne retourne pas l'element parent de la fonction...

  4. #4
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    je ne peux pas tester tout de suite vu que le click doit affecter mon 2eme tr alors si modifie ta fonction ça devrait donner ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function showhide(elementTable) { 
      with(elementTable.getElementsByTagName('tr')[1].style){ 
        .display=(.display="none"?"block":"none") 
      }; 
    }
    ?? :

  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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    si 0 est le premier , il y a de fortes chances que 1 soit le second ...
    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
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    bah ca marche pas...
    dois y avoir un soucis de syntaxe avec les points virgules ou un autre soucis mais je vois pas trop la

  7. #7
    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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Encore un mystère des nodes ...
    Qui peut m'expliquer pourquoi il faut colle un parentNode de plus ?
    sans dout une balise tbody fantome ?
    en tou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <table id='coucou'>
      <tr id="tr">
        <td id="td">
          <img src="fleche.jpg" onclick="alert(this.parentNode.parentNode.parentNode.parentNode.id)"/>
        <td>
        <td/>
      </tr>
      <tr>
        <td>
          <table>...et ainsi de suite
        </td>
      </tr>
    </table>
    Question subsidiaire comment récupère-t-on le tag ?? nodeType me retourne 1 ?
    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 !

  8. #8
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par SpaceFrog
    Encore un mystère des nodes ...
    Qui peut m'expliquer pourquoi il faut colle un parentNode de plus ?
    sans dout une balise tbody fantome ?
    Oui, c'est vrai, la balise tbody est systématiquement rajoutée dans les tableaux. Je conseille donc de la mettre, ça evitera qu'elle soit rajoutée par derrière (je crois même que c'est dans la norme HTML qu'il faut un tbody dans le tableau, a vérifier).


    Citation Envoyé par SpaceFrog
    Question subsidiaire comment récupère-t-on le tag ?? nodeType me retourne 1 ?
    Propriété tagName pour le nom du tag. Le nodeType est le type de Node DOM (Element, Document, Text, ....), à comparer aux constantes (par exemple http://developer.mozilla.org/en/docs...ement.nodeType).

  9. #9
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par denisC
    (je crois même que c'est dans la norme HTML qu'il faut un tbody dans le tableau, a vérifier).
    Je m'auto-confirme:
    <!ELEMENT TABLE - -
    (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>
    http://www.w3.org/TR/REC-html40/struct/tables.html#h-11.2.1


    Dans la DTD de HTML 4.01, TR ne peut pas être le fils d'une table, d'où la nécessité de passer par un TBODY.

  10. #10
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    et bien pour en revenir a mon probleme...
    j ai réglé cela en utilisant cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var ElementToHide=img.parentNode.parentNode.nextSibling;
    et voila résolu
    Merci à tous

  11. #11
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par tiscars
    et bien pour en revenir a mon probleme...
    j ai réglé cela en utilisant cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var ElementToHide=img.parentNode.parentNode.nextSibling;
    et voila résolu
    Merci à tous
    c'est probablement pas compatible Firefox (cf ), mais bon, si c'est un developpement IE? c'est pas grave....

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

Discussions similaires

  1. Accéder à des éléments
    Par jbidou88 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/09/2012, 19h19
  2. [DOM] Accéder à des éléments du formulaire
    Par riete dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 17/03/2009, 17h47
  3. [Xaml/C#:CustomControl] Comment accéder à des éléments du Template?
    Par SuprazZz dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 26/11/2008, 20h40
  4. Réponses: 8
    Dernier message: 18/11/2008, 20h22
  5. Réponses: 4
    Dernier message: 17/04/2006, 20h10

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