使用填充数组错误更改Img属性

时间:2014-09-09 15:30:41

标签: javascript html arrays error-handling

我对JavaScript很新,并且很难理解为什么这一小段代码无法正常工作。在函数'更改(幻灯片)'中,如果我使用alert()函数显示传递给它的任何数组,则会显示预期结果。但是,当我希望将结果分配给我的图像的src属性时,我收到一条错误说明

未捕获的TypeError:无法读取属性' setAttribute'为null 未捕获的TypeError:无法读取属性' 0'未定义的

我正在寻找最合适有效的方法将我的杂色src文本分配到我的图像中。

function loadSlider(){
    var stocker = new Array();

    for(var i = 0; i<15; i++){
        stocker.push("C:\\Users\\Rickep\\random_pics\\"+i+".jpg");

    }

    return stocker;
}   

var slider = new Array();
slider = loadSlider();
change(slider);



function change(slide){
document.getElementById('imageToFill').setAttribute('src',slide[1]);

}


</script>   

<div id="filler">
    <img id="imageToFill"></img>
</div>

1 个答案:

答案 0 :(得分:1)

您在创建img标记之前触发change(slider);

onload="change(slider);"添加到您的正文标记(并删除当前调用)应修复。

如果您使用的是JQuery,这也可能是$('document').ready(function(){change(slider);});,而不是当前的更改调用。

看看setInterval实际交换图片。

var currentSlide = 0;
$('document').ready(function(){
   setInterval(change, 5000); // 5 seconds
});

function change(){
  currentSlide = (currentSlide+1) % slider.length;
  document.getElementById('imageToFill').setAttribute('src',slider[currentSlide]);
}