Javascript 用于循环和图像

Javascript 用于循环和图像,javascript,loops,for-loop,Javascript,Loops,For Loop,我需要一个for循环来调用映像。我知道如何通过数组调用图像,所以我设置了一个包含图像链接的基本数组。但我似乎无法让它发挥作用。下面是相关的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

我需要一个for循环来调用映像。我知道如何通过数组调用图像,所以我设置了一个包含图像链接的基本数组。但我似乎无法让它发挥作用。下面是相关的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;
    }
}
功能图标(x){
var img=新数组();
img[0]={img:“img/icon1.gif”};
var图标=”;

for(var i=30;i当用户单击一次链接时,使用for循环会导致icon1图像显示30次

好的-首先你的for循环只运行一次-你初始化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;
    }
}
函数showIconThirtyTimes(){
var icon=“”

对于(var i=0;i如果你想继续像现在这样从数组中调用图标,你可以使用类似的东西。但是,就像@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();
函数图标(){
var img=新数组();
img[0]={img:“img/icon1.gif”};
var icon=img[0];
对于(变量i=0;i<30;i++){
document.getElementById(“answer”).innerHTML+=i+1+''+icon+'
; } } 函数icon2(){ var img=新数组(); img[0]={img:“img/icon1.gif”}; img[1]={img:“img/icon2.gif”}; 对于(变量i=0;i<30;i++){ 如果(i%2==0) icon=img[0]; 其他的 icon=img[1]; document.getElementById(“answer”).innerHTML+=i+1+''+icon+'
; } } //将指定的图标打印30次 图标(); //将图标1和2交替显示30次 icon2();

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

为什么要在
30
处开始循环?@BenM,它也在
30
处结束。有史以来最短的循环。是的,我实际上只使用了一个数组,因为我知道如何使用数组添加图像,并且使用了我认为可能有效的方法。但是,正如你提到的,数组是不需要的d,没有它们就更容易了,现在我对这一点有了更好的理解。我也调整了代码,使其不带数组,我想我已经很好地掌握了你和@lwalden向我展示的这个概念。谢谢你的帮助!