11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous et surtout bravo pour le site ALSACREATIONS, riche en publications. C'est pour cette raison que je viens vous exposer mon problème. Je n'ai malheureusement pas trouvé la réponse sur mon cher ami Google.

La fonction javascript suivante ajoute une ligne dans un tableau HTML. Sur Firefox, cela marche très bien. En revanche sur Internet Explorer cela ne fonctionne pas. Et il me retourne pas d'erreur.

function AjouterLigne (val1,val2)
{
    // Création de la ligne
    TR = document.createElement ("tr");
	
    // Création de la première cellule
    TD1  = document.createElement ("td");
    TXT1 = document.createTextNode (val1);
    TD1.appendChild (TXT1);
	
    // Création de la deuxième cellule
    TD2  = document.createElement ("td");
    TXT2 = document.createTextNode (val2);
    TD2.appendChild (TXT2);
	
    // On assemble les cellules a la ligne
    TR.appendChild(TD1);
    TR.appendChild(TD2);

    // On assemble la ligne au tableau
    document.getElementById ('montableau').appendChild (TR);
}


Cette fonction crée une ligne et deux cellules. Elle ajoute les cellules à la ligne et la ligne au tableau dont l'id est: montableau.

Mes contraintes sont que la fonction doit fonctionnée sous Firefox comme sous Internet Explorer. Savez vous d'où le problème peut venir ? Ou avez une autre fonction qui fait ce genre de chose ?

Merci d'avance, a bientôt !
On a eu un problème similaire très récemment, fais une recherche. Je crois que c'était une histoire de tbody implicite dans IE.
Ok merci, j'ai ajouter la création du TBODY. Je vous colle la fonction si cela intéresse quelqu'un.

function AjouterLigne (val1,val2)
{	
    // On créé le corps du tableau
    TBODY = document.createElement ("tbody");
	
    // On créé la ligne
    TR = document.createElement ("tr");
	
    // On créé la premiere cellule
    TD1  = document.createElement ("td");
    TXT1 = document.createTextNode (val1);
    TD1.appendChild (TXT1);
	
    // On créé la deuxieme cellule
    TD2  = document.createElement ("td");
    TXT2 = document.createTextNode (val2);
    TD2.appendChild (TXT2);
	
    // On assemble les cellules a la ligne
    TR.appendChild(TD1);
    TR.appendChild(TD2);

    // On assemble la ligne au corps du tableau
    TBODY.appendChild(TR);
	
    // On assemble le corps du tableau au tableau
    document.getElementById ('tableAdresses').appendChild (TBODY);
}
Bonjour,
tbody éxiste, il n'est pas nécessaire de le créer :
document.getElementById ('montableau').getElementsByTagName('tbody')[0].appendChild (TR);

Modifié par chmel (28 Jul 2005 - 15:13)