for 循环和图像

for loops, and images

我需要一个 for 循环来调用图像。我知道如何通过数组调用图像,所以我设置了一个包含图像 link 的基本数组。我似乎无法让它工作。下面是相关的 javascript 和试图完成的图像

function icon(x) {
    var img = new Array();
    img[0] = {img:"img/icon1.gif"};
    var icon =" <img src='" + img[x].img + "'>";
    for(var i=30; i<31; i++) {
        document.getElementById("answer").innerHTML += icon + i;
    }
}

当用户点击link一次时,有一个for循环导致icon1图像显示30次。

好的 - 首先你的 for 循环只 运行ning 一次 - 你将 i 初始化为 30 并循环直到 i 不再小于 31,每次增加 1,所以它将 运行 一次,从 30 递增到 31 然后跳出循环。

也不确定为什么你的图像包含在一个数组中,除非这是一些单独的要求,特别是因为数组中只有一个图像。

你可以重构成这样:

function showIconThirtyTimes(){
    var icon ="<img src='img/icon1.gif'>"

    for(var i=0; i<30; i++) {
        document.getElementById("answer").innerHTML += icon;
    }
}

如果您需要将图像存储在数组中,或者如果您需要将计数器写入文档 i,您应该能够很容易地将这些要求添加回去。主要问题是你的 for 循环。

如果你想像现在这样从数组中调用图标,你可以使用类似这样的方法。但是,正如@lwalden 所说,您不需要使用数组。

function icon(){
    var img = new Array();
    img[0] = {img: "img/icon1.gif"};
    var icon = img[0];
    for(var i=0; i < 30; i++){
        document.getElementById("answer").innerHTML += i+1 + ' ' + icon + '<br />';
    }
}

function icon2(){
    var img = new Array();
    img[0] = {img: "img/icon1.gif"};
    img[1] = {img: "img/icon2.gif"};
    for(var i=0; i < 30; i++){
        if(i % 2 == 0)
            icon = img[0];
        else
            icon = img[1];
        document.getElementById("answer").innerHTML += i+1 + ' ' + icon + '<br />';
    }
}

// Prints the specified icon 30 times
icon();

// Alternates icon 1 and 2 30 times
icon2();

输出还将显示您所处的增量。第二个函数非常相似,只是它只是使用模数 (%) 运算符检查当前增量是偶数还是奇数。它将在第一个增量(从 0 开始)打印图标 1,在第二个增量打印图标 2 并分别交替。