Dupliquer une ligne d'un tableau html javascript DOM [Résolu]

Messages postés
20
Date d'inscription
mercredi 13 octobre 2004
Dernière intervention
27 novembre 2009
- - Dernière réponse : cs_lord1366
Messages postés
20
Date d'inscription
mercredi 13 octobre 2004
Dernière intervention
27 novembre 2009
- 26 oct. 2009 à 18:18
Bonjour,

voici mon problème :
Je voudrais copier une ligne d'un tableau html (celà fonctionne sous Mozilla, Opera, Safari, IE8 mais pas sous IE6 et IE7)

image permettant d'appeler la fonction :




Libellé |
Jour |
Mois |
Année |
Message |
Options |

----

,
<select name="jour"><option value="00">0</option><option value="01">1</option> </select>,
<select name="mois"><option value="0">0</option><option value="01">Janvier</option></select>,
,
,



la fonction javascript :

function CopyRow(IdTablo,IdRowToCopy)
{
CptTableRow = 1

ContentRow = $(IdRowToCopy).childElements();

NbTd = ContentRow.length;

var row = document.createElement("TR");

row.className = "TableRow0";

row.id = "TableRow-"+CptTableRow;

for(var i=0;i<=NbTd-1;i++) // -1 pour enlever le submit
{
var cell = document.createElement("TD");

cell.innerHTML = $(ContentRow[i]).innerHTML;

cell.id = "NewTd"+i;

row.appendChild(cell);
}

document.getElementById(IdTablo).appendChild(row);

}

Merci pour votre aide.
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
4934
Date d'inscription
samedi 1 juillet 2006
Dernière intervention
2 février 2015
3
Merci
>>je ne sais pas si insertRow et insertCell le >>permettent.
ben... si voyons... ne serait-ce qu'avec
le innerHTML... que vous utilisez.
ch'tiot exemple ici
mais si vous tenez à conserver appendChild
( chacun ses goûts et la caravane passe )
comme dit : ajouter les <tr>
au <tbody> pas au <table>

Merci Bul3 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Bul3
Messages postés
20
Date d'inscription
mercredi 13 octobre 2004
Dernière intervention
27 novembre 2009
1
Merci
Bonjour,

Je connais insertRow et insertCell cependant pour une question d'esthétique et de pratique je dois faire des modifications sur les cellules (id,class...) et avec la fonction que je propose celà permet de le faire, je ne sais pas si insertRow et insertCell le permettent.

Je peux préciser que :

ContentRow = $(IdRowToCopy).childElements();

alert(ContentRow)

va retourner dans le cas où celà fonctionne que c'est objet html de type tableau, pour IE 6 et 7 uniquement un objet.


Merci en tout cas.
Commenter la réponse de cs_lord1366
Messages postés
4934
Date d'inscription
samedi 1 juillet 2006
Dernière intervention
2 février 2015
0
Merci
Bonjour,

avec IE7 et précédents,
la balise <tbody> entre <table> et <tr>
est obligatoire si on utilise le DOM tel
que vous le faites.

perso j'utilise plutôt insertRow et insertCell
ça me semble bien plus simple, mais ce n'est que
mon avis etr ça ne fait pas le moine.

Cordialement
Commenter la réponse de Bul3
Messages postés
20
Date d'inscription
mercredi 13 octobre 2004
Dernière intervention
27 novembre 2009
0
Merci
Merci pour ton aide je teste le tbody et je te dis si ça fonctionne.
Commenter la réponse de cs_lord1366
Messages postés
20
Date d'inscription
mercredi 13 octobre 2004
Dernière intervention
27 novembre 2009
0
Merci
Merveilleux, merci, je remets le code du tableau avec le tbody et le changement d'id de réference pour la duplication.

Libellé |
Jour |
Mois |
Année |
Message |
Options |

----

,
<select name="jour"><option value="00">0</option><option value="01">1</option> </select>,
<select name="mois"><option value="0">0</option><option value="01">Janvier</option></select>,
,
,
Commenter la réponse de cs_lord1366

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.