Dupliquer une ligne d'un tableau html javascript DOM

Résolu
cs_lord1366 Messages postés 20 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 27 novembre 2009 - 26 oct. 2009 à 16:48
cs_lord1366 Messages postés 20 Date d'inscription mercredi 13 octobre 2004 Statut Membre 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.

5 réponses

Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
26 oct. 2009 à 17:54
>>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>
3
cs_lord1366 Messages postés 20 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 27 novembre 2009 1
26 oct. 2009 à 17:45
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.
1
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
26 oct. 2009 à 17:10
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
0
cs_lord1366 Messages postés 20 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 27 novembre 2009 1
26 oct. 2009 à 18:12
Merci pour ton aide je teste le tbody et je te dis si ça fonctionne.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_lord1366 Messages postés 20 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 27 novembre 2009 1
26 oct. 2009 à 18:18
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>,
,
,
0
Rejoignez-nous