Forum Clubic

[JavaScript] innerHTML - fermeture du tag automatique

Bonjour,

J’utilise l’attribut innerHTML en JavaScript pour modifier le contenu d’une balise div. Voilà le code que j’ai tapé (en gros) :


 document.getElementById("mondiv").innerHTML = "<table>";
 alert(document.getElementById("mondiv").innerHTML);

Cependant le résultat affiché est : “<table></table>”
Or après ces lignes de code je continue à créer mon tableau en ajoutant des tr, td, etc. J’ai l’impression que l’attribut innerHTML ferme automatiquement les balises ouvertes. Comment empêcher cela ?

Merci beaucoup pour votre aide !

Tu veux ajouter des éléments à ton tableau ?
Tu peux créer les éléments comme des objets et utiliser cela :


sousElement = document.CreateElement("");
element = document.getElementById("");
element.appendChild(sousElement);

http://msdn.microsoft.com/library/default…eateelement.asp

ok je te remercie c’est nickel !
J’ai même ajouté des attributs à un élément.
J’ai créé un élément ‘a’ puis un attribut ‘onClick’
dans lequel j’appelle une fonction javascript.

attribut.nodeValue = "javascript:mafonction();";

Cependant j’ai un pb : ma fonction n’est pas appelée !
Je ne comprends pas du tout pourquoi…
Pourtant quand je visualise le code HTML (à l’aide d’un alert de innerHTML) le code me semble nickel et ne parait pas poser de pbs…

Qqun voit d’ou mon pb peut venir ?

Merci beaucoup pour toutes vos réponses !

Il faut ajouter un attribut de cette manière :

element.setAttribute("onclick", "maFonction(param);");

Je te remercie! ça marche nickel! Mais je comprends pas pourquoi ce que j’avais écrit ne marchait pas. Peut etre que le contenu de onClick était interprété comme du texte. Enfin je compends pas trop mais bon le principal c’est que maintenant ça marche et je t’en remercie :slight_smile:

Juste une petite remarque, la méthode .innerHTML ne marche que sous IE.
Je pense que d’une manière général, il vat mieux utiliser la méthode précaunisé par oxyFrance.

et en fait, comme tout élément DOM a un événement onclick associé, t’as plus vite fait de faire element.onclick= function() {maFonction(param);}

(ceci dit, ton exemple fonctionne)

Merci pour votre aide