0

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

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

4

5 回答 5

1

使用setInterval而不是setTimeOut.

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

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

于 2013-08-03T15:19:30.050 回答
1

你应该使用setInterval. setTimeout仅用于 1 次执行。

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

    //show it in page

}, 1000);
于 2013-08-03T15:20:10.413 回答
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 小提琴演示

参考:

于 2013-08-03T15:21:11.930 回答
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;
}
于 2013-08-03T15:23:15.793 回答
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

于 2013-08-03T15:23:20.723 回答