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

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

5 réponses

Répondre au sujet
Bul3 4934 Messages postés samedi 1 juillet 2006Date d'inscription 2 février 2015 Dernière intervention - 26 oct. 2009 à 17:54
+3
Utile
>>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>
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Bul3
cs_lord1366 20 Messages postés mercredi 13 octobre 2004Date d'inscription 27 novembre 2009 Dernière intervention - 26 oct. 2009 à 17:45
+1
Utile
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
Bul3 4934 Messages postés samedi 1 juillet 2006Date d'inscription 2 février 2015 Dernière intervention - 26 oct. 2009 à 17:10
0
Utile
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
cs_lord1366 20 Messages postés mercredi 13 octobre 2004Date d'inscription 27 novembre 2009 Dernière intervention - 26 oct. 2009 à 18:12
0
Utile
Merci pour ton aide je teste le tbody et je te dis si ça fonctionne.
Commenter la réponse de cs_lord1366
cs_lord1366 20 Messages postés mercredi 13 octobre 2004Date d'inscription 27 novembre 2009 Dernière intervention - 26 oct. 2009 à 18:18
0
Utile
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.