[tableau] Problème tableaux et boucles
Résolu/Fermé
XecK
Messages postés
386
Date d'inscription
mercredi 22 décembre 2010
Statut
Membre
Dernière intervention
26 août 2016
-
5 juin 2013 à 17:07
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 - 6 juin 2013 à 14:48
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 - 6 juin 2013 à 14:48
A voir également:
- [tableau] Problème tableaux et boucles
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Trier tableau excel - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
4 réponses
Utilisateur anonyme
5 juin 2013 à 17:28
5 juin 2013 à 17:28
Bonjour
Je ne m'y connais pas en jQuery, mais ça ne m'étonne qu'à moitié. Tu essayes d'insérer des <td> directement dans un élément <table>, alors qu'il faudrait les insérer dans un élément <tr>.
À ta place, je mettrais tout dans une grande chaîne, et à la fin un seul coup de innerHTML pour créer le tableau.
Je ne m'y connais pas en jQuery, mais ça ne m'étonne qu'à moitié. Tu essayes d'insérer des <td> directement dans un élément <table>, alors qu'il faudrait les insérer dans un élément <tr>.
À ta place, je mettrais tout dans une grande chaîne, et à la fin un seul coup de innerHTML pour créer le tableau.
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
Modifié par jeremy.s le 5/06/2013 à 20:16
Modifié par jeremy.s le 5/06/2013 à 20:16
Salut !
Le append insert directement en dessous, donc effectivement comme l'a dit le père tu insers tes tr et tes td directement dans <table>
Deplus avec le append tu rempli tu tableau en "poussant" les éléments donc tu bas le générer de bas en haut.
Le truc c'est que tu génères bien le tableau en js, mais celui en html non.
Je te propose ca :
Jérémy
Le append insert directement en dessous, donc effectivement comme l'a dit le père tu insers tes tr et tes td directement dans <table>
Deplus avec le append tu rempli tu tableau en "poussant" les éléments donc tu bas le générer de bas en haut.
Le truc c'est que tu génères bien le tableau en js, mais celui en html non.
Je te propose ca :
$(document).ready(function() { var tableau = new Array(); for(var i=0 ; i<20 ; i++) { tableau[i] = new Array(); var tr = '<tr>'; for(var j=0 ; j<10 ; j++) { if (Math.round(Math.random()*10)==1) { tableau[i][j] = 'X'; tr = tr + '<td>X</td>'; } else { tableau[i][j] = ' '; tr = tr + '<td> </td>'; } } tr = tr + '</tr>'; $('#main table').html($('#main table').html()+tr); } });
Jérémy
XecK
Messages postés
386
Date d'inscription
mercredi 22 décembre 2010
Statut
Membre
Dernière intervention
26 août 2016
54
6 juin 2013 à 11:04
6 juin 2013 à 11:04
Merci pour vos réponses, effectivement ça fonctionne comme ça, mais j'ai aussi réussi à le faire marcher en ajoutant <tbody></tbody> dans ma table, et exécuter les append sur l'élément #main table tbody, et ça marche.
Mais je crois que je vais prendre votre solution qui marche plus comme je le souhaitais.
Mais je crois que je vais prendre votre solution qui marche plus comme je le souhaitais.
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
6 juin 2013 à 14:48
6 juin 2013 à 14:48
Rien t'empèche de mettre un tbody ;-) Tu feras simplement :
$('#main table tbody').html($('#main table tbody').html()+tr);
$('#main table tbody').html($('#main table tbody').html()+tr);