嗯,解释我需要做什么有点难,但是:
我有一个包含21个字符串的数组,并且我有一个javascript函数,每3秒工作一次,如下所示:
function Ready(){
t=setTimeout("change()",3000);
}
$(document).ready(function() {
Ready();
});
我不知道该怎么做:我将如何每隔3秒更改一个div元素(称为“id1”),用数组中的新文本替换其文本,从1到21然后再返回又一次?
答案 0 :(得分:2)
这使用了一种称为“匿名函数”的东西,它取代了你的问题中的“change()”。这是使用setTimeout的正确方法。
var arrPtr = 0; // <-- this is the array pointer varialble.
vat txtArr = "a,b,c,d".split(",") //<-- this contains your string array
function Ready() {
t=setTimeout(function(){
$('#id1').html(txtArr[arrPtr]); //<-- this puts the value or the arrayat position "arrPtr" into your page
arrPtr++; // <-- this increments the position to the next element
if(arrPtr>txtArr.length) {
arrPtr = 0; // <--- this resets the position to zero when it gets to the end of the array
}
},3000);
}
答案 1 :(得分:1)
var str = ["Hello", "World"];
var changeInterval = null;
var changeIteration = 0;
var change = function(){
$('#id1').text(str[changeIteration++ % str.length]);
}
$(document).ready(function(){
change();
changeInterval = setInterval(change,3000);
});
答案 2 :(得分:0)
试试这个:
$(document).ready(function() {
var myStrings = ["string 1", "string 2", "string 3"];
var interval = setInterval(changeValue, 3000);
var index = 0;
function changeValue() {
var idx = (index + myStrings.length) % myStrings.length;
document.getElementById("id1").innerHTML = myStrings[idx];
index++;
}
});