Files是一个在这里使用的数组,并传递了三个项目。下一次button
之后,我只从array
获得第一项。如何onclick
下一个button
逐个获取下一个项目?{/ p>
请在下面找到js代码:
function plusSlides(n) {
var i;
var currentIndex= 0;
var files = ["","",""];
if(currentIndex<files.length)
{
var omyFrame = document.getElementById("myFrame");
omyFrame.style.display="block";
omyFrame.src = files[currentIndex];
currentIndex++;
}
n++;
}
答案 0 :(得分:0)
您每次只获取数组的第一项的原因是因为您在currentIndex
函数中声明了files
和plusSlides
。每次调用时,currentIndex
都会重置为0
。
尝试将这些声明放在plusSlides
函数之外:
var files = ['', '', ''];
var currentIndex = 0;
function plusSlides() {
...
}
答案 1 :(得分:0)
每次调用函数时,都会重置currentIndex
变量,因为它属于函数范围。您可以将currentIndex
变量设为全局变量,也可以在函数中保留当前索引的信息:
function plusSlides(n) {
this.currentIndex = this.currentIndex || 0;
var files = ["", "", ""];
if(this.currentIndex < files.length)
{
// Reset your iframe source here
this.currentIndex++;
}
console.log(this.currentIndex);
}
&#13;
答案 2 :(得分:0)
价值&#39; n&#39;你传递给函数是不是在函数内部的任何地方使用。变量i和currentIndex也会被重置,因此在某种程度上它们在这里没用。您可以根据传递的参数更新currentIndex的值,然后相应地进行编码。 试试以下代码,
var currentIndex= 0;
var files = ["","",""];
function plusSlides(n) {
if(n == 1)
currentIndex++;
else
currentIndex--;
currentIndex = (currentIndex <= -1)? 0 : currentIndex;
if(currentIndex<files.length)
{
var omyFrame = document.getElementById("myFrame");
omyFrame.style.display="block";
omyFrame.src = files[currentIndex];
}
}