Javascript inerhtml je comprends pas !

Fermé
fraid - 5 mai 2008 à 13:24
Kcazer Messages postés 26 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 13 août 2008 - 5 mai 2008 à 16:13
Bonjour,
je suis vraiment débutant en javascript,
j'ai essayer de créer un code qui rajoute du contenu à la page courante à chaque fois que l'utilisateur clic sur le boutton, mais cela ne marche que pour le 1er clic, pouvez vous me dire où est le soucis dans mon code ??

voici mon code :

note : la valeur de mon champs texte est bien incrémentée à chaque fois..


<script type="text/javascript">
function changeText()
{
var i = document.getElementById('aa').value;

var u = i;

i++;

document.getElementById('div'+u+'').innerHTML = '<div id=div'+i+'> test </div><br />';

document.getElementById('aa').value=''+i+'';
}
</script>

<input type='button' onclick='changeText()' value='Change Text'/>
<input type=text name=aa value="0"><br><br>
<div id=div0></div>



merci d'avance

3 réponses

Kcazer Messages postés 26 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 13 août 2008 21
5 mai 2008 à 13:49
Salut,

Ton script fonctionne, mais ce n'est tout simplement pas visible à cause d'une petite erreur.
Quand tu utilises
document.getElementById('div'+u+'').innerHTML = '<div id=div'+i+'> test </div><br />';

cela remplace l'integralité de la balise, et donc efface ce qui était dedans avant.

En clair: (avec en gras, l'avant/apres clic)
Au debut: <div id=div0></div>
Au 1er clic: <div id=div0><div id=div1>test</div><br/></div>
2nd clic: <div id=div0><div id=div1><div id=div2>test</div><br/></div><br/></div>

Pour corriger ce probleme, tu devrais utiliser:
document.getElementById('div'+u+'').innerHTML += '<div id=div'+i+'> test </div><br />';

afin d'ajouter le nouveau contenu a la fin de ce qui est deja dans le div.

En esperant que ça t'aide ;)

ps: les balises div vont se retrouver imbriquées, c'est voulu ? De plus, il n'est pas vraiment utile d'utiliser le <br/> car les balises div sont des balises de type block (retour à la ligne avant et apres automatique, a moins de le modifier via le css)
0
magnifique !

je vous remercie !
0
Kcazer Messages postés 26 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 13 août 2008 21
5 mai 2008 à 16:13
N'oublie pas de passer le topic en résolu dans ce cas ;)
0