2013-08-03 2 views
0

Я хочу отображать котировки на моей веб-странице, и у меня есть 10 кавычек в массиве quotes[]. Я хочу изменить их каждые 1 сек, произвольно выбрав любую 1 цитату из массива. Я хочу сделайте это, используя только javascript.Как изменить строку каждые 1 с помощью Javascript

Я использовал setTimeout, но все испортилось. Может ли кто-нибудь помочь мне с фиктивным кодом или функцией, которые я могу использовать.

+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.

Ссылки:

+0

: Спасибо, босс. Работать отлично. –

1

Вы должны использовать setInterval. setTimeout только для 1-го исполнения.

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

    //show it in page 

}, 1000); 
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; 
} 
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

Смежные вопросы