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 :

nodeValue et cellule d'un tableau


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 35
    Points : 17
    Points
    17
    Par défaut nodeValue et cellule d'un tableau
    Bonjour à toutes et à tous,

    je cherche à afficher le texte d'une cellule d'un tableau via la méthode nodeValue, mais lorsque j'utilise "alert(maVariable.nodeValue);" pour l'afficher, la fenêtre affichée est vide.

    Voici mon code html :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <body>
    	<table id="myTable">
    		<tr>
    			<td>Cellule 1</td>
    			<td>Cellule 2</td>
    			<td>Cellule 3</td>
    		</tr>
    		<tr>
    			<td>Cellule 1</td>
    			<td>Cellule 2</td>
    			<td><input type="button" value="afficher" onClick="essai();"></td>
    		</tr>
    	</table>
    </body>

    et voici le code javascript associé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function essai(){
        var table = document.getElementById('myTable');
        var ligne = table.firstElementChild;
        var cellule = ligne.firstElementChild;
        var noeudText = cellule.firstChild;
        alert(noeudText.nodeValue);
    }
    Lorsque je fais alert(noeudText.nodeName);, une fenêtre m'affiche "#text", ce qui me fait penser que j'ai bien ciblé le noeud.

    Alors, erreur de ma part ou incompatibilité liée aux tableaux ?

    Merci d'avance à celles et ceux qui pourront me débloquer !

    Sephi

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Les navigateurs complètement le DOM du tableau en ajoutant un tag <tbody>. Pour un code plus sûr, utilise plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.querySelectorAll("#mytable td");

  3. #3
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Sur les nœuds textes, la propriété data est un alias de nodeValue. Je préfère m'en servir car c'est plus court, et à la lecture du code, ça indique au premier coup d'œil qu’on a affaire à un nœud texte.

    Sinon, sur les éléments html il y a la propriété « magique » textContent qui est une concaténation de tous les nœuds textes descendants. Pratique, mais peut-être un peu moins propre. Et ça ne marche pas sous IE<9.

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 098
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 098
    Points : 44 864
    Points
    44 864
    Par défaut
    Boonjour,
    il existe aussi les collections rows et cells qui peuvent facilité les accès.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function essai(){
        var table = document.getElementById('myTable');
        var ligne = table.rows[0];
        var cellule = ligne.cells[0];
        var noeudText = cellule.firstChild;
        alert(noeudText.nodeValue);
    }

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

Discussions similaires

  1. [W3C] Cellule d'un tableau en lien
    Par sysmeryl dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 14/12/2006, 09h06
  2. Alignement dans les cellules d'un tableau
    Par philippef dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 23/02/2005, 12h15
  3. [SWT]edition de cellule d'un tableau SWT
    Par javaGirl dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 30/03/2004, 13h04
  4. Réponses: 3
    Dernier message: 01/12/2003, 13h14
  5. [CR9] Colorier les cellules d'un tableau croisé
    Par Koko22 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 14/11/2003, 16h57

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