Récupérer le contenu d'un tableau HTML dans un tableau JS

Signaler
Messages postés
9
Date d'inscription
lundi 24 janvier 2005
Statut
Membre
Dernière intervention
30 janvier 2005
-
Messages postés
9
Date d'inscription
lundi 24 janvier 2005
Statut
Membre
Dernière intervention
30 janvier 2005
-
Salut,

pour un script de tri de tableau de façon dynamique, je récupère les données text de ce tableau dans un tableau javascript (array).
Pour cela, je boucle sur le nombre de colonnes et sur celui de lignes en utilisant la méthode .innerText (cf ci dessous). Le pb, c'est que mon tableau fait 650 lignes sur 7 colonnes et que ça finit par faire quelques secondes sur mon ordi. Voyez-vous une autre façon + rapide de récupérer ce tableau ?

Merci d'avance.

Code :

<HR>
// On copie le contenu du tableau HTML dans un tableau javascript
for (j=0; j<tableau_document.rows[0].cells.length-1; j++){
for (i=0; i<tableau_document.rows.length-1; i++) {
tableau_javasc[i][j] = tableau_document.rows[i+1].cells[j+1].innerText;
}
}

<HR>

8 réponses

Messages postés
544
Date d'inscription
vendredi 5 décembre 2003
Statut
Membre
Dernière intervention
20 mai 2005

Tu n'as pas besoin de faire ce scan. Tu doit pouvoir utiliser directement :
tableau_document.rows[i+1].cells[j+1].innerText;
Messages postés
9
Date d'inscription
lundi 24 janvier 2005
Statut
Membre
Dernière intervention
30 janvier 2005

En effet, ça fonctionne (sur de petit tableau) mais avec 600 lignes ça plantait Internet Explorer (pourquoi, je ne sais pas ...).
Messages postés
9
Date d'inscription
lundi 24 janvier 2005
Statut
Membre
Dernière intervention
30 janvier 2005

En plus, suis-je bête, j'utilise pour le tri la méthode sort de l'objet de type Array (objet javascript)... ça marchera pas avec le tableau HTML !
Messages postés
544
Date d'inscription
vendredi 5 décembre 2003
Statut
Membre
Dernière intervention
20 mai 2005

Un tableau simple ne suffirait pas ?
for (i=0; i<tableau_document.getElementsByTagName('td').length; i++){
tableau_javasc[i] =
tableau_document.getElementsByTagName('td')[i].firstChild.data
}
Messages postés
9
Date d'inscription
lundi 24 janvier 2005
Statut
Membre
Dernière intervention
30 janvier 2005

Je ne comprends pas trop ce que tu veux dire. Ce que je veux obtenir, c'est un tri de tableau en fonction de la colonne sélectionnée. En fait, le script marche assez bien (cf ma source déposée http://www.javascriptfr.com/code.aspx?id=29116) mais je chipote un peu et je cherche à optimiser le temps de calcul. Avec ta soluc, je perds la notion de colonne, non ? Comment trier en fonction d'une colonne alors ?
Messages postés
544
Date d'inscription
vendredi 5 décembre 2003
Statut
Membre
Dernière intervention
20 mai 2005

Je voulais dire manipuler l'information de manière dynamique avec les méthodes
du DOM comme le fait ce script . L'as-tu essayé avec ton tableau de 600
valeurs ?
Messages postés
9
Date d'inscription
lundi 24 janvier 2005
Statut
Membre
Dernière intervention
30 janvier 2005

Yep ! ça fait dans les 3 secondes sur mon ordi...
Messages postés
9
Date d'inscription
lundi 24 janvier 2005
Statut
Membre
Dernière intervention
30 janvier 2005

Yep ! ça fait dans les 3 secondes sur mon ordi...