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 :

Identifier les chaînes dans une balise


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Identifier les chaînes dans une balise
    Bonjour

    Je débute... Y a-t-il une façon élégante d'extraire le texte1 et texte 3 dans ce morceau de page ?

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <td>
      Texte1
      <b>texte2</b>
      <br>
      texte3
      <div>texte4</div>
    </td>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    getElementsByTagName("td")[i].InnerText             // concatène tous les textes
    getElementsByTagName("td")[i].children[0].InnerText // donne texte2
    getElementsByTagName("td")[i].children[1].InnerText // est vide, c'est le <br>
    getElementsByTagName("td")[i].children[2].InnerText // donne le texte4
    Mais puis-je récupérer directement le texte1 ou le Texte3 ? Je sais que je peux utiliser InnerHTML sur le <td> et utiliser les fonctions chaînes, mais je me demandais comment accéder à ces morceaux via le DOM HTML en JS.

    Merci de votre éclairage !

  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
    Bonsoir,

    children renvoie tous les enfants de type Element. Pour avoir tous les noeuds, y compris les noeuds enfants de type texte, tu peux utiliser childNodes.

    Bien que le plus simple reste d'englober les bouts de texte qui t'intéressent dans une balise, un <span> par exemple.
    One Web to rule them all

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Merci SylvainPV, c'est exactement ça ! Je n'avais pas capté cette différence...

    Je passe par VBA, j'ai dû utiliser la syntaxe childNodes.item(i) car childNodes(i) ne marchait pas - alors que children(i) marche, mais bon - je le note ici pour mémoire, ça peut toujours servir à quelqu'un

    (et merci à NoSmoking pour la remise en forme de mon message initial)
    Belle continuation !

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

Discussions similaires

  1. Réponses: 24
    Dernier message: 01/05/2012, 22h34
  2. compter les éléments dans une balise
    Par Sh4dow49 dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 05/09/2008, 20h00
  3. Remplacer les accents dans une chaîne
    Par mathieumg dans le forum C
    Réponses: 9
    Dernier message: 23/07/2006, 15h39
  4. Réponses: 3
    Dernier message: 04/05/2006, 13h00
  5. [RegEx] Trouver tous les "/mot" dans une chaîne
    Par micatmidog dans le forum Langage
    Réponses: 7
    Dernier message: 31/03/2006, 12h07

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