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 :

[IE8] Récupérer les nodes d'un tableau.


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 166
    Par défaut [IE8] Récupérer les nodes d'un tableau.
    Bonjour,

    J'ai créé un tableau dynamiquement avec PHP et il s'appelle tableaupersonnes. De plus, j'ai créé un tableau HTML (appelé tabpers) qui lui va se charger de la présentation et mise en page du tableau tableaupersonnes.

    Après ça, j'ai créé une fonction JS qui cherche dans le tableau tableaupersonnes (JS) si le nom d'une personne est présent, si oui il l'affiche sinon il le cache (dans le tableau HTML).

    Cependant ça ne fonctionne pas sous IE8, je me suis renseigné sur le nodeCleaner mais ça n'a pas l'air de changer le problème.

    Voici le code :
    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
    function trierNom(cherche)
    {
    	var tbody = tabpers.getElementsByTagName("tbody")[0];
    	var nom;
    	var td;
    	var reg = new RegExp(cherche,'i');
     
    	for (i=0;i<tableaupersonnes.length;i++)
    	{
    		nom = tableaupersonnes[i][1];
    		td = tbody.childNodes[i];
     
    		if (nom.search(reg) >= 0) // trouvé
    		{
    			td.style.display = "table-row";
    		}
    		else
    		{
    			td.style.display = "none";
    		}
    	}
    }
    L'erreur trouvée sous IE8 est :
    'style' a la valeur Null ou n'est pas un objet.
    En faisant un alert, j'ai remarqué que ma variable "td" (JS) est indéfinie dans IE mais pas dans FF. Visiblement il n'arrive pas à récupérer les ChildNodes sous IE...

    D'où vient le problème ?

    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
    teste si le node est bien un td avant de lui coller un style
    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é
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 166
    Par défaut
    Sous IE8, le td (JS) est "undefined" et le tbody est considéré comme un objet.

    Pourquoi ?

    Merci.

  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 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
    change de nom de variable
    tbody => montbody
    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
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 166
    Par défaut
    Merci mais j'ai toujours le même problème. J'ai changé le nom de mes variables qui pouvaient poser un problème (tbody => montbody, td => montd) mais le problème persiste.

    IE me renvoie l'erreur :
    "'style' a la valeur Null ou n'est pas un objet."
    Je redonne ma fonction avec les variables modifiées :
    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
    function trierNom(cherche)
    {
    	var montbody = tabpers.getElementsByTagName("tbody")[0];
    	var nom;
    	var montd;
    	var reg = new RegExp(cherche,'i');
     
    	for (i=0;i<tableaupersonnes.length;i++)
    	{
    		nom = tableaupersonnes[i][1];
    		montd = montbody.childNodes[i];
     
    		if (nom.search(reg) >= 0) // trouvé
    		{
    			montd.style.display = "table-row";
    		}
    		else
    		{
    			montd.style.display = "none";
    		}
    	}
    }
    Merci

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 166
    Par défaut
    Problème résolu !

    Ça venait du fait que j'avais mal déclaré certaines variables, et j'ai donc réutilisé des variables globales et là ça marche mieux.

    Merci

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 04/03/2008, 22h22
  2. Réponses: 5
    Dernier message: 20/07/2007, 15h15
  3. Réponses: 6
    Dernier message: 27/09/2006, 20h27
  4. récupérer les doublons d'un tableau
    Par stoyak dans le forum Langage
    Réponses: 4
    Dernier message: 11/05/2006, 11h50
  5. [javascript] récupérer les "clés" d'un tableau
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/02/2006, 10h13

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