2010-01-29 12 views
5

Estoy creando una galería de imágenes simple, y me gustaría crear varios conjuntos de imágenes. Al hacer clic en un enlace, todas las imágenes en el conjunto dado del enlace cambiarán.Cambiar varias fuentes de imagen Javascript

Aquí está mi código actual:

<ul> 
    <li><img src="image01.jpg" width="500" height="450"></li> 
    <li><img src="image02.jpg" width="200" height="450"></li> 
    <li><img src="image03.jpg" width="530" height="450"></li> 
    <li><img src="image04.jpg" width="500" height="450"></li> 
    <li><img src="image05.jpg" width="178" height="340"></li> 
    <li><img src="image06.jpg" width="400" height="450"></li> 
    <li><img src="image07.jpg" width="300" height="220"></li> 
    <li><img src="image08.jpg" width="400" height="450"></li> 
    <li><img src="image09.jpg" width="500" height="450"></li> 
    <li><img src="image10.jpg" width="400" height="450"></li> 
    <li><img src="image11.jpg" width="300" height="450"></li> 
    <li><img src="image12.jpg" width="300" height="450"></li> 
    <li><img src="image13.jpg" width="178" height="340"></li> 
    <li><img src="image14.jpg" width="500" height="450"></li> 
    <li><img src="image15.jpg" width="200" height="220"></li> 
    <li><img src="image16.jpg" width="100" height="450"></li> 
</ul> 

Por ejemplo, en el tecleo de las fuentes vínculo1 todo habría cambiado a setA01.jpg, setA02.jpg, y en el clic de Link2 los souces se convertiría setB01.jpg, y así sucesivamente. Cualquier ayuda sería muy agradecida.

+0

¡Bienvenido a StackOverflow, Matt! – Sampson

+1

¿Los números siempre serán 1, 2, 3, etc.? – Sampson

Respuesta

2

Si sus números siempre serán "01, 02, 03, etc" se puede utilizar una función como la siguiente:

function setBase(baseval) { 
    var images = document.getElementById("mylist").getElementsByTagName("img"); 
    for (var i = 0; i < images.length; i++) { 
    images[i].src = baseval + ((i<9)?0+i:i) + ".jpg"; 
    } 
} 

Usando que en contra de esta lista:

<a href="#" onclick="setBase('setA'); return false;">Set A</a> 
<ul id="mylist"> 
    <li><img src="image01.jpg" /></li> 
    <li><img src="image02.jpg" /></li> 
</ul> 

crearía lo siguiente (suponiendo que se pasara 'setA' como argumento):

<ul id="mylist"> 
    <li><img src="setA01.jpg" /></li> 
    <li><img src="setA02.jpg" /></li> 
</ul> 
+1

+1 - estaba escribiendo casi el mismo código fuente exacto cuando apareció el tuyo ... ¡oh! Solo una cosa, ¿no sería 'i' ser' 0' en la primera iteración? Esto significaría que la primera imagen debería ser setA00.jpg a menos que use ++ i en el bucle o i + 1 en el condicional. –

+0

** Nota: ** Esto opera en un índice basado en cero. Si necesita que las fuentes comiencen con "1", necesitará incrementar el valor dentro de la línea '.src ='. – Sampson

+0

Puede mover el 'return false' a la función para reducir la redundancia. –

Cuestiones relacionadas