2015-02-21 2 views
-1

Я хочу написать код, который содержит абзац, и содержимое абзаца изменяется с определенными интервалами примерно 5 секунд. Содержимое должно чередоваться каждые 5 секунд. используя javascript.here - моя попытка.изменение текста после регулярного интервала

<html> 
<script> 
    i = 0; 

    function changeText(txt) { 
      var s = txt; 
      document.body.innerHTML.change = document.body.innerHTML.replace(s, Mudit "); 
       replaceorig(txt); i++; 
       if (i % 2 == 0) setTimeOut(function() { 
        changeText(); 
       }, 500); 
      } 

      function replaceorig(txt) { 
       document.body.innerHTML.change = txt; 
      } 
</script> 

<body onload="changeText('My name is Mudit')" ;> 
    <p id="change">My name is Mudit</p> 
</body> 

</html> 
+0

Там, кажется, некоторые syntax- ошибка в .replace (s, Mudit); – Blauharley

ответ

0
i = 0; 

function changeText(txt) { 
    var s = txt; 
    document.body.getElementById("change").innerHTML = document.body.getElementById("change").innerHTML.replace(s, "Mudit"); 
    replaceorig(txt); 
    i++; 
    if (i % 2 == 0) setTimeOut(function() { 
     changeText(); 
    }, 5000); 
} 

function replaceorig(txt) { 
    document.body.getElementById("change").innerHTML = txt; 
} 

Это исправляет все ошибки в коде:

  • document.body.innerHTML.change не является правильным способом решения р-элемент.
  • 500 - 500 миллисекунд или половина секунды, поэтому вам нужно 5000.
  • Mudit не был правильно указан в функции замены.

Есть еще несколько вопросов, я не мог решить, потому что я не знаю, что вы хотите сделать:

  • document.body.getElementById("change").innerHTML = document.body.getElementById("change").innerHTML.replace(s, "Mudit"); Эта линия будет заменить текст с вашим именем Mudit, но будет немедленно перезаписывается replaceorig(txt);
  • Через пять секунд changeText вызывается через setTimeout, но не предоставляет аргумент. Таким образом, p-element будет установлен на undefined каждые 5 секунд.
0

Это работает для меня, я сделал функцию, которая принимает элемент, текстовые должны быть изменены, тексты, которые должны быть использованы последовательно и время в миллисекундах:

function changeText(element, texts, time) { 

    var text = texts.splice(0, 1) [0]; 
    if (text) { 
    element.innerHTML = text; 
    setTimeout(function() { 
     changeText(element, texts, time); 
    }, time); 
    } 

} 

var element = document.body.getElementById("change"); 
var texts = [ 
    'My name is Mudit', 
    'my name is joe', 
    'my name is johnson', 
    'my name is jack' 
]; 
var time = 5000; 

changeText(element, texts, time); 
Смежные вопросы