【问题标题】:Javascript for loop not looping correctlyJavascript for 循环未正确循环
【发布时间】:2013-05-26 17:13:34
【问题描述】:

这是问题的 Js Fiddler,因为在它运行之前,我看不出这怎么可能有意义。 img src 和 i 循环遍历它们并将它们放在 img.src 中并加载它们然后附加到元素。我尝试了各种其他似乎不起作用的方法,我不知道为什么会发生这种情况。是jsfiddler的问题还是我的代码不正确?

http://jsfiddle.net/shavyg2/GsQtn/embedded/result/

    /*Slide show*/
var container=$(".imageContainer");

var imageList=["http://blogs.adobe.com/captivate/files/2011/09/HTML5.jpg",               "http://www.hanselman.com/blog/content/binary/Windows-Live-Writer/HTML5-Support-for-Visual-Studio-2010---W_90C5/vshtml5_2.png",              "http://photos4.meetupstatic.com/photos/event/d/e/0/0/event_117656832.jpeg",               "http://e4dhtml5.azurewebsites.net/Content/html5man.jpg",               "http://la-matrice.org/wp-content/uploads/2013/02/css3.png"];

var count=0;
for(var i=0;i<imageList.length;i++){
    var image=new Image();
    var number=i+0;
    image.src=imageList[number];
    container.append(image);    
    container.append(imageList[number]);
    image.load();
    count++;
}

container.append(count);

【问题讨论】:

  • +0 的原因是我想确保它不是 i 被保存的引用,而是表达式的实际值。这两种方式都没有帮助。这也是我将数字作为新变量的原因。有或没有它仍然没有工作;

标签: javascript for-loop increment


【解决方案1】:

删除 for 循环中的 image.load()。

for(var i=0;i<imageList.length;i++){
    var image=new Image();
    var number=i+0;
    image.src=imageList[number];
    container.append(image);    
    container.append(imageList[number]);
    count++;
}

http://jsfiddle.net/6skav/

摆脱“container.append(imageList[number]);”如果您不想显示 url。

【讨论】:

    【解决方案2】:

    http://jsfiddle.net/GsQtn/1/

    这似乎符合您的意图。我认为问题在于您所有无关的image 代码。我实现的循环基本上是这样的:

    for(var i=0;i<imageList.length;i++){
        var image = document.createElement("img");
        image.src=imageList[i];
        container.append(image);
        count++;
    }
    

    【讨论】:

    • 我想通了。我不需要像使用音频和视频标签那样调用加载函数
    【解决方案3】:

    我在小提琴中试过这个,它奏效了。

    for(var i=0;i<imageList.length;i++){
       var image=new Image();
       image.src=imageList[i];
      container.append(image);    
    }
    

    【讨论】:

    • 嗯,也许我的屏幕很小..让我再检查一下
    • 这些是图片。它只是在我的屏幕上不起作用我不知道为什么
    【解决方案4】:

    这不起作用的原因是我调用了 image.load() 函数。我习惯了使用最近我正在做的音频和视频标签,你不需要为图像调用加载。 其实它没有那个方法。

    这是没有测试内容的最终工作代码

      for(var i=0;i<imageList.length;i++){
        var image=new Image();
        image.src=imageList[i];
        container.append(image);    
        }
    

    【讨论】:

      猜你喜欢
      • 2014-06-28
      • 2012-08-29
      • 2015-10-03
      • 1970-01-01
      • 2022-11-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-12
      • 1970-01-01
      相关资源
      最近更新 更多