Fonctionnement de FOR
Fermé
jimInTheHood
Messages postés
3
Date d'inscription
vendredi 7 mai 2010
Statut
Membre
Dernière intervention
8 mai 2010
-
7 mai 2010 à 20:58
ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 - 8 mai 2010 à 23:50
ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 - 8 mai 2010 à 23:50
A voir également:
- Fonctionnement de FOR
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Fonctionnement onedrive - Guide
- Copytrans heic for windows - Télécharger - Visionnage & Diaporama
- Download instagram for pc - Télécharger - Divers Communication
- Idm for mac - Télécharger - Téléchargement & Transfert
3 réponses
ghuysmans99
Messages postés
2496
Date d'inscription
jeudi 14 juillet 2005
Statut
Contributeur
Dernière intervention
5 juin 2016
339
Modifié par ghuysmans99 le 8/05/2010 à 00:22
Modifié par ghuysmans99 le 8/05/2010 à 00:22
Ce code (mal écrit) définit les évènements onClick et onMouseOver pour chaque objet nommé de img1 à img5 inclus. Y'a moyen de faire plus court (par contre je sais pas si la casse des noms d'évènements est correcte) :
VB.NET is good ... VB6 is better !
for (var i=1;i<=5;i++) { document.getElementById("img"+i).onClick = afficherImg; document.getElementById("img"+i).onMouseOver = AfficherTest; }
VB.NET is good ... VB6 is better !
Utilisateur anonyme
8 mai 2010 à 09:45
8 mai 2010 à 09:45
C'est bien la même variable oui :
Donc tout ce qui est à l'intérieur de la boucle sera répété 5 fois, et à chaque tour, i aura une valeur plus grande. "img"+i correspondra donc successivement à img1;img2;img3;img4;img5.
for (var i=1;i<=5;i++)ici, on déclare une variable i à laquelle on attribut la valeur 1. Ensuite, on pose une condition : i doit toujours être inférieur ou égale à 5. Et enfin, i++ indique qu'on souhaite incrément i de 1 à chaque tour de boucle.
Donc tout ce qui est à l'intérieur de la boucle sera répété 5 fois, et à chaque tour, i aura une valeur plus grande. "img"+i correspondra donc successivement à img1;img2;img3;img4;img5.
jimInTheHood
Messages postés
3
Date d'inscription
vendredi 7 mai 2010
Statut
Membre
Dernière intervention
8 mai 2010
8 mai 2010 à 18:32
8 mai 2010 à 18:32
voici mes 5 boutons dans mon index.html :
<div id="menu_02">
<ul>
<li>
<div id="img_001" class="bt_001">image_001</div>
</li>
<li>
<div id="img_002" class="bt_001">image_002</div>
</li>
<li>
<div id="img_003" class="bt_001">image_003</div>
</li>
<li>
<div id="img_004" class="bt_001">image_004</div>
</li>
<li>
<div id="img_005" class="bt_001">image_005</div>
</li>
Appel des events avec Javascript
j'avais débuté avec:
document.getElementById("img_001").onclick = afficherVisionneuse;
document.getElementById("img_002").onclick = afficherVisionneuse;
document.getElementById("img_003").onclick = afficherVisionneuse;
document.getElementById("img_004").onclick = afficherVisionneuse;
document.getElementById("img_005").onclick = afficherVisionneuse;
j'ai optimisé mon code avec:
for (var i=1;i<=5;i++) {
document.getElementById("img_00" + i).onclick = afficherVisionneuse;
}
événement
function afficherVisionneuse() {
document.getElementById("visionneuse").src = "images/" + this.id + ".jpg";
}
ce que je ne saisi pas:
le code fonctionne à merveille, mais je me questionne sur son utilisation, je n'ai pas besoin du compteur (i++).
Le code est fonctionnel, mais pas logique c'est à ce sujet que j'aimerais avoir des éclaircissement.
Est-ce qu'il y a d'autre manière d'optimiser mon bloc d'appel sans utiliser le "for" ?
Merci
<div id="menu_02">
<ul>
<li>
<div id="img_001" class="bt_001">image_001</div>
</li>
<li>
<div id="img_002" class="bt_001">image_002</div>
</li>
<li>
<div id="img_003" class="bt_001">image_003</div>
</li>
<li>
<div id="img_004" class="bt_001">image_004</div>
</li>
<li>
<div id="img_005" class="bt_001">image_005</div>
</li>
Appel des events avec Javascript
j'avais débuté avec:
document.getElementById("img_001").onclick = afficherVisionneuse;
document.getElementById("img_002").onclick = afficherVisionneuse;
document.getElementById("img_003").onclick = afficherVisionneuse;
document.getElementById("img_004").onclick = afficherVisionneuse;
document.getElementById("img_005").onclick = afficherVisionneuse;
j'ai optimisé mon code avec:
for (var i=1;i<=5;i++) {
document.getElementById("img_00" + i).onclick = afficherVisionneuse;
}
événement
function afficherVisionneuse() {
document.getElementById("visionneuse").src = "images/" + this.id + ".jpg";
}
ce que je ne saisi pas:
le code fonctionne à merveille, mais je me questionne sur son utilisation, je n'ai pas besoin du compteur (i++).
Le code est fonctionnel, mais pas logique c'est à ce sujet que j'aimerais avoir des éclaircissement.
Est-ce qu'il y a d'autre manière d'optimiser mon bloc d'appel sans utiliser le "for" ?
Merci
ghuysmans99
Messages postés
2496
Date d'inscription
jeudi 14 juillet 2005
Statut
Contributeur
Dernière intervention
5 juin 2016
339
8 mai 2010 à 23:50
8 mai 2010 à 23:50
Une boucle est pour moi la solution la plus économique. L'instruction i++ dit qu'à chaque répétition du bloc entre les accolades il doit ajouter 1 à i.
8 mai 2010 à 09:31
est-ce que le "i" dans le "for" est la même variable que celle dans ("img" + i)