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 :

Récupérer les rows d'un élément table (IE vs Firefox)


Sujet :

JavaScript

  1. #1
    Membre confirmé Avatar de venegan
    Inscrit en
    Mars 2005
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 72
    Par défaut Récupérer les rows d'un élément table (IE vs Firefox)
    Bonjour,

    J'ai le problème suivant :

    J'ai un doc constitué à peu près comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <table>
     <tbody>
      <form>
       <tr></tr>
      </form>
     </tbody>
     <tbody>
      <form>
       <tr></tr>
      </form>
     </tbody>
    </table>
    J'essaie de récupérer les "<tr>" à l'aide des collections .rows appliqué sur la table ou le tbody mais avec IE :
    - si je fais un table.rows il ne récupère que les tr du premier tbody
    - si je fais un tbody.rows il ne récupère que des tr qui ne sont pas entre des balises form

    Alors qu'avec Firefox ou Opera ça fonctionnne sans soucis

  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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form>
       <tr></tr>
      </form>
    C'est quoi ce form qui vient perturber la struture du tableau ?????

    on ne peut pas intercaler des balises comme ça !!!
    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
    Membre confirmé Avatar de venegan
    Inscrit en
    Mars 2005
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 72
    Par défaut
    Pas la peine de m'engueuler c'est pas mon code
    Je fais juste que le débugger. :o

  4. #4
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    Je ne t'engueule pas ...
    C'est juste que du code comme ça, ça pique les noeils !

    Bon ben commence par debuguer le html en respectant la structure d'une balise table.
    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 !

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonsoir,
    Un table ne doit avoir qu'une seule balise tbody. Sinon, tu peux récupérer les éléments tr avec getElementsByTagName("tr").

    A+.

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Bonsoir,
    Un table ne doit avoir qu'une seule balise tbody.
    plusieurs TBODY sont autorisés http://www.w3.org/TR/html4/struct/tables.html#h-11.2.3
    Sinon, tu peux récupérer les éléments tr avec getElementsByTagName("tr").
    pour les constructions un peu... cela reste la meilleur solution

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Il existe aussi la collection rows liée aux balises <body>, <thead>, <tfoot> ou <tbody>
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Membre confirmé Avatar de venegan
    Inscrit en
    Mars 2005
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 72
    Par défaut
    Merci pour vos réponses.

    J'avais tenté le .rows sur le Tbody mais le souci reste le même.
    En fait le corps de ma page est généré par du java c'est pour ça que je voulais pas trop y toucher (ie : pour pas revoir tout le mode de génération de la page).

    J'ai creuser un peu et apparement en changer le doctype de strict à transitional et en enlevant un balise <meta http-equiv="X-UA-Compatible" content="IE=8" />
    la fonction javascript marche mieux, est ce qu'a votre avis il y a moyen de finter juste la fonction "js" ?

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    pour pas revoir tout le mode de génération de la page
    C'est pourtant le plus important à faire !
    Tant que la structure de ta table sera incorrecte (notamment les balises <form> mal positionnées), tu ne pourras pas appliquer de rustine efficace !
    est ce qu'a votre avis il y a moyen de finter juste la fonction "js" ?
    Non, tu ne peux pas faire croire à JavaScript que ta structure HTML est correcte si elle ne l'est pas...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  10. #10
    Expert confirmé
    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 : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    À la limite, tu pourrais recréer en JS un parseur HTML qui accepterait ce genre de structure scabreuse… Mais ça risque de demander pas mal de boulot
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  11. #11
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Watilin
    À la limite, tu pourrais recréer en JS un parseur HTML qui accepterait ce genre de structure scabreuse… Mais ça risque de demander pas mal de boulot
    Pas sûr... le comportement des navigateurs devant une structure HTML erronée ne peut être garantit. Et à priori, la plupart tentent de "remanier" le HTML pour le rendre le plus conforme possible.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  12. #12
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    Beef je pense que Watoo imaginait comme moi la recuperation d'un innerHTML
    => parsage de texte
    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 !

  13. #13
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Mouais...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <!doctype html>
    <html lang="fr">
    <head>
    	<meta charset="utf-8" />
    	<title>Malformed HTML</title>
    </head>
    <body>
    	<div id="mauvais"><span>HTML non <strong>valide</span></div>
    <script>alert(document.getElementById('mauvais').innerHTML);</script>
    </body>
    </html>
    affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <span>HTML non <strong>valide</strong></span>


    EDIT :
    et
    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
    <!doctype html>
    <html lang="fr">
    <head>
    	<meta charset="utf-8" />
    	<title>Malformed HTML</title>
    </head>
    <body>
    	<table>
    		<tbody id="mauvais">
    			<form>
    				<tr></tr>
    			</form>
    		</tbody>
    		<tbody>
    			<form>
    				<tr></tr>
    			</form>
    		</tbody>
    	</table>
    	<script>alert(document.getElementById('mauvais').innerHTML);</script>
    </body>
    </html>
    affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <form></form>
    	<tr></tr>
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  14. #14
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Je ne vois pas trop l'intérêt.
    masturbation intellectuelle ?

  15. #15
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    Trouver une excuse pour pondre du code pourri
    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 !

  16. #16
    Membre confirmé Avatar de venegan
    Inscrit en
    Mars 2005
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 72
    Par défaut
    Alors j'ai résolu mon problème en gettant les éléments par le tag TR.
    J'espère qu'il aura pas de régression

    Merci pour vos avis

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

Discussions similaires

  1. Récupérer les mails Outlook dans une table Access
    Par zerrokooll dans le forum VBA Access
    Réponses: 79
    Dernier message: 07/07/2009, 14h22
  2. récupérer les données d'un texte -> table
    Par bizu31 dans le forum Oracle
    Réponses: 3
    Dernier message: 29/03/2007, 09h59
  3. Récupérer les dimensions de l'élément parent ?
    Par ghohm dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 02/09/2006, 10h22
  4. Réponses: 1
    Dernier message: 07/06/2006, 18h56
  5. Requete select pour récupérer les no match entre 2 tables
    Par Celina dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 16/12/2003, 11h59

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