2014-07-14 43 views
0

我有存储在数组中的图片链接,并且当单击按钮时,使用这些图片链接更改div的背景。使用javascript单击按钮时更改图片

到目前为止一切正常,但我不明白当i值大于array.length值时,如何让函数返回数组的第一个值([0])。

这里就是我的了:

function palabifunkcija(){ 
    document.getElementById('PictureContent').value= ++i; 
    document.getElementById('PictureContent').style.background= bildes[i]; 
    if (i>bildes.length){ 
     return i=0; 
    } 
} 

点击使图像改变,但如果语句执行的时候,我必须点击按钮两次,它显示第二画面(bildes [1])不bildes [0]。

任何人都可以解释为什么它是如此,我该如何解决它,所以它能正常工作?

对不起,英语不好。

回答

1

你可以找到除以数组长度的i的其余部分。

var i = 0, 
    length = bildes.length; 
function palabifunkcija(){ 
    i++; 
    i %= length; 
    document.getElementById('PictureContent').value = i; 
    document.getElementById('PictureContent').style.background = bildes[i]; 
} 
+0

谢谢,这个完美的作品。现在我只知道它是如何工作的。 – MarisP

+0

它总是使“当前指数”按总长度“正常化”,从而防止它大于长度。假设长度为3; 0%3 == 0,1%3 == 1,2%3 == 2,3%3 == 0等 –

+0

我还是不明白它是如何工作的。根据我的理解,它将2个数字分开并显示剩下的内容。我想不是这样,现在我很困惑。 – MarisP

1

试试这个

function palabifunkcija(){ 
    i = (i+1) % bildes.length; 
    document.getElementById('PictureContent').value= i; 
    document.getElementById('PictureContent').style.background= bildes[i];  
}