Bonjour,
une ID doit ETRE UNIQUE et la méthode document.getElementById('id_element'); te permet de récupérer l'élément ayant pour ID la string passée en paramètre.
Dans ce bout de code
var texte = document.getElementById('description');
tu mets la référence à l'élément ayant comme ID 'description', dans la variable texte.
Dans ce bout de code
texte[0] = document.getElementById('description').innerHTML = "Photo1 etc etc";
tu affectes à l'innerHTML de ton élément la valeur 'Photo1 etc etc' ainsi qu'au 1er élément du TABLEAU texte, mais celui ci n'est nullement déclaré en tant que Array donc cela va planter.
A mon sens le plus simple serait d'utiliser un data-description sur tes liens
1 2 3 4
| <a href="#" data-description="description photo #1">photos 1</a>
<a href="#" data-description="description photo #2">photos 2</a>
<a href="#" data-description="description photo #3">photos 3</a>
<a href="#" data-description="description photo #4">photos 4</a> |
et dans ta boucle tu initialises la fonction sur le onclick pour lire la data-description et l'affecter comme il va bien.
Malheureusement IE est à la traine donc il faut y penser
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| var oDescription = document.getElementById('description');
for(var i=0, nb = oLiens.length; i < nb; i++){
oLiens[i].onclick = function(){
if( this.dataset){ // les navigateurs bien ;)
descript = this.dataset.description;
}
else{ // IE -11
descript = this.getAttribute('data-description')
}
oDescription.innerHTML = descript;
// supprime action par défaut
return false;
};
} |
Partager