如何使用Javascript每1秒更改一次字符串

时间:2013-08-03 15:16:10

标签: javascript dom

我想在我的网页上显示引号,我在数组quotes[]中有10个引号。我想通过从数组中随机选择任何1引号来每1秒更改一次。我想只使用javascript执行此操作

我使用了setTimeout,但一切都搞砸了。任何人都可以帮助我使用我可以使用的虚拟代码或函数。

5 个答案:

答案 0 :(得分:1)

使用setInterval代替setTimeOut

如果您遵循以下链接中指示的内容,应该像魅力一样工作:

https://developer.mozilla.org/en-US/docs/Web/API/window.setInterval

答案 1 :(得分:1)

您应该使用setIntervalsetTimeout仅用于执行一次。

setInterval(function () {
    var index = Math.floor(Math.random() * quotes.length)
    var quote = quotes[index];

    //show it in page

}, 1000);

答案 2 :(得分:1)

我建议使用window.setInterval()

以下方法
var q = ['quote 1', 'quote 2', 'quote 3', 'pick your own note'];

function quoteChange (target, quotes) {
    if (!quotes || !target) {
        return false;
    }
    else {
        var n = Math.floor(Math.random() * quotes.length),
            text = 'textContent' in document ? 'textContent' : 'innerText'
        target[text] = quotes[n];
    }
}

var change = window.setInterval(function(){
    quoteChange(document.getElementById('demo'), q);
}, 1000);

JS Fiddle demo

参考文献:

答案 3 :(得分:0)

使用此:

setInterval ( ChangeText, 1000 ); //Function Name,Time to repeat this funcion

function ChangeText(){
  var randNumber =  Math.floor((Math.random()*10)+1);
  var quote = quotes[randNumber];
  var String = document.getElementById("LabelName");
  String.innerHTML = quote;
}

答案 4 :(得分:0)

您当然可以使用setInterval,或者更好地使用setTimeout,如下所示:

 var quotes = ['first', 'second', 'third'];
 function updateQuote(){
    var selectedIndex = Math.floor(Math.random() * quotes.length);
    container.innerText = quotes[selectedIndex];
    setTimeout(updateQuote,1000);
 }

 updateQuote();

此处的工作示例:http://plnkr.co/edit/?p=preview