Change src of images through jquery

7

I'm using the Animated Responsive Image Grid plugin and want to change the images src through Javascript / Jquery.

HTML code:

<div id="ri-grid" class="ri-grid ri-grid-size-1 ri-shadow">
<ul>
    <li><a href="#"><img src="images/medium/1.jpg" alt="Whatever works"/></a></li>
    <li><a href="#"><img src="images/medium/2.jpg" alt="Anything else"/></a></li>
    <!-- ... -->
</ul>

I have an array of links of images with variable size

vectorImagens=[]

The goal is to change the src="images/medium/1.jpg" to src=vectorImagens[0] , and src="images/medium/2.jpg" to src=vectorImagens[1] and etc

    
asked by anonymous 22.02.2014 / 02:21

2 answers

3

What you need is to run a code that changes the src attribute to each image.

Since you already have a vectorImagens , use:

$('#ri-grid img').each(function(i){
    vectorImagens[i] && this.setAttribute('src', vectorImagens[i]); 
});
// Explicação:
// Iterar todas as imagens e usar o parametro i (index) que o jQuery dá para ir 
// buscar o correspondente à array vectorImagens

If there are fewer images in% w_of% than% w_th elements, you can do so:

var contador = 0;
$('#ri-grid img').each(function(){
    if(!vectorImagens[contador]) contador = 0;
    this.setAttribute('src', vectorImagens[contador]);
    contador ++;
});
// Explicação:
// Iterar todas as imagens e usar o parametro contador para ir 
// buscar o correspondente à array vectorImagens. 
// No caso de não existir tal imagem, o if() dá true e faz reset ao contador.
// Assim a iteração de imagens continua mas a imagem buscada volta ao inicio 
// da array de imagens (vectorImagens)

Example

Option only with vanilla JS:

var contador = 0;
var imagens = document.getElementById("ri-grid").getElementsByTagName("img");
for (var i = 0; i < imagens.length; i++) {
    if (!vectorImagens[contador]) contador = 0;
    imagens[i].setAttribute('src', vectorImagens[contador]);
    contador++;
};

Example

    
22.02.2014 / 10:02
3

It's simple, using jQuery you can do the following:

var vectorImagens = ["images/medium/3.jpg","images/medium/4.jpg"];//exemplo
var len = vectorImagens.length; //tamanho do vectorImagens
var imagens = $('#ri-grid ul li a img'); //os elementos img
for(var i=0; i < len; i++){ //percorre o tamanho do vectorImagens
    imagens.eq(i).attr('src', vectorImagens[i]);
}

JSFiddle Example

    
22.02.2014 / 03:00