<!DOCTYPE html>
<html>
<body>
<div id="question_set"><img class="centre" id="question" src=""></div>
<script>
var questionImages = [ "data:image/jpeg;base64,/9j/4AAQS..."
];
document.addEventListener('DOMContentLoaded', function() {
for (var i = 0; i < questionImages.length; i++) {
setTimeout(function(){
document.getElementById("question").src = questionImages[i];
}, 1500);
}
}, false);
</script>
</body>
</html>
网站基本上会在超时后切换照片
当我使用document.getElementById(&#34; question&#34;)。src = questionImages [0];,
我可以设置图片了
但是当我使用带有array.length的循环时,
它显示错误:在控制台中找不到文件
base64编码为long?
答案 0 :(得分:0)
变量'i'的值在setimeout执行时发生变化。一种方法是重构代码,如下所示。无论何时想运行代码,都要将DOMContentLoaded更改为。
var questionImages = [ "data:image/jpeg;base64,/9j/4AAQS..."
], i=0, interval;
document.addEventListener('DOMContentLoaded', function() {
interval = setInterval(update,1500);
}, false);
function update(){
if(i<questionImages.length)
document.getElementById("question").src = questionImages[i++];
else
clearInterval(interval);
}