DOM fonctionne pas

galio -  
avion-f16 Messages postés 19254 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

je ne comprend pas comment utiliser le DOM, je suis en train d'apprendre avec des tutoriels mais je n'ai encore jamais réussi a afficher quelque chose dans ma page.

Voici un code basique par exemple:

<script type="text/javascript">
<!--
var titre = document.createElement("h1");
var texte = document.createTextNode("blablablabla");
titre.appendChild(texte);
document.getElementById("output").appendChild(titre);

//-->
</script>


j'ai une div avec l'id="output" mais rien ne s'affiche...

si quelqu'un pouvait m'aider, merci d'avance

3 réponses

Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention   209
 
salut, il est ou la balise output ???
0
galio
 
elle est dans le body

<div id="output"></div>

ca devrait marcher theoriquement non ?
0
Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention   209
 
bizarre
<div id="passage" style="border:1px black solid; padding:10px">
</div>
<script type="text/javascript">
<!--
 var montitre = document.createElement("h1");
 var montexte = document.createTextNode("Une page très dynamique");
 montitre.appendChild(montexte);
 var passagesortie = document.getElementById("passage");
 passagesortie.appendChild(montitre);
//-->
</script>


http://fr.selfhtml.org/javascript/objets/document.htm#create_element
0
galio
 
j'ai suivi l'exemple dans ton lien, ca marche maintenant
mais seulement si le javascript se trouve apres la div
0
avion-f16 Messages postés 19254 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Salut,

Si tu places le code Javascript dans l'entête de la page (<head> ... </head>), il faut attendre que la page HTML soit chargée avant de le lancer.

Tu dois donc faire comme ceci :
window.onload = function() {
    // Ton code ici
};


Si tu le places dans le corp, alors c'est après le code HTML utilisé par le script.
De préférence, on le place juste avant </body>.
0