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

Signaler
Messages postés
20
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
27 novembre 2009
-
Messages postés
20
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
27 novembre 2009
-
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.

5 réponses

Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
8
>>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>
Messages postés
20
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
27 novembre 2009
1
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.
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
8
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
Messages postés
20
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
27 novembre 2009
1
Merci pour ton aide je teste le tbody et je te dis si ça fonctionne.
Messages postés
20
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
27 novembre 2009
1
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>,
,
,