11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour, je suis pas encore très a l'aise avec javascript et je ne réussi pas à faire ce que je veux:
1) j'ai créer une fonction qui change les images avec 2 boutons.
2)le problème c'est qu'avec mon code actuel l'image modifiée est la premiere img src qu'il trouve dans ma page, or je veux que ce soit l'img src de ma div id="contimg".


image1= new Image(500,281);
image1.src= "image1.jpg";
image2= new Image(500,281);
image2.src= "image2.jpg";
image3= new Image(500,281);
image3.src= "image3.jpg"

function change1(numero)
	{
		conteur++;
		if (conteur==1)
		{
			document.images[numero].src=image2.src;
			//document.getElementById("contimg").images[numero].src=image2.src;
		}
		if (conteur==2)
		{
			document.images[numero].src=image3.src;
			//document.getElementById("contimg").images[numero].src=image3.src;
		}
		if (conteur>2)
		{
			conteur=0;
		}
		
		if(conteur==0)
		{
			document.images[numero].src=image1.src;
			//document.getElementById("contimg").images[numero].src=image1.src;
		}

j'ai mis en commentaire un essai de syntaxe, mais qui ne marche pas.
j'ai également essayé : document.contimg.images Smiley numero .src=image3.src; sans plus de résultat. Est-ce quelqu'un à une idée ?
Bonjour,

À partir d'IE8 tu peux utiliser querySelector:
document.querySelector("#contimg img").src = image1.src;

Sinon tu peux combiner getElementById et getElementsByTagName:
document.getElementById("contimg").getElementsByTagName("img")[0].src = image1.src;


Dans tous les cas tu peux largement factoriser ton code et éviter les répétitions. Si tu utilises document.getElementById("contimg").getElementsByTagName("img")[0] (ou la variante avec querySelector) pour «récupérer» ton image dans le DOM, mieux vaut le faire une seule fois et associer le résultat à une variable.
ok merci ça fonctionne bien. J'aurais jamais penser à associer avec getElementsByTagName.
Pour ce qui est de la factorisation, je maitrise pas encore assez la chose pour faire des fonctions plus "propres" Smiley smile Je fait avec les moyens du bord comme on dit.
Merci encore !
dimz a écrit :
Pour ce qui est de la factorisation, je maitrise pas encore assez la chose pour faire des fonctions plus "propres" Smiley smile Je fait avec les moyens du bord comme on dit.

Dans ce cas je te conseille de commencer à apprendre JavaScript. Parce que c'est vraiment la base. Smiley cligne