我想编写一个占用段落的代码,段落的内容会以一定的间隔(例如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 :(得分: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
不是解决p元素的正确方法。500
为500毫秒或半秒,因此您需要5000
。Mudit
未在替换功能中正确引用。我仍然无法解决一些问题,因为我不知道你想做什么:
document.body.getElementById("change").innerHTML = document.body.getElementById("change").innerHTML.replace(s, "Mudit");
此行将替换名称为Mudit
的文字,但会被replaceorig(txt);
changeText
通过setTimeout
调用,但不提供参数。因此,p-element
将每5秒设置为undefined
。答案 1 :(得分: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);