使用间隔在现有文本之后显示文本

时间:2017-11-30 12:59:34

标签: javascript html5

Zup Stackoverflow! 关于我似乎无法解决的问题,我有一个问题。我想添加带有区间函数的文本,该区间函数只能在h2标记内已存在的文本之后才能看到。数据来自列表数组。所以像这样:

HTML:

<div id="output">
    <h2 id="funny-day">Funny day: (HERE IS WHERE I WANT THE OUTPUT TO BE)</h2>
</div>

使用Javascript:

//Get elements
var funny-day = document.getElementById("funny-day");

//Array
var list = ["Sunny", "Cloudy", "Rainy"]

//Function to output array
var index = 0;
markiser.innerHTML = markiser.textContent;
setInterval(function() { 

    var text = (list[index++ % list.length]).toString();
    markiser.innerHTML += text; <<Not working ofcourse since it only appends 

}, 2000);

重要提示是,由于搜索引擎优化的目的,我想在h2标签内保留“有趣的一天:”。

2 个答案:

答案 0 :(得分:1)

为什么不为<span class="data">yourdata</span>

等数据专门添加标记

//Get elements
var funnyDay = document.getElementById("funny-day");

//Array
var list = ["Sunny", "Cloudy", "Rainy"]

//Function to output array
var index = 0;
setInterval(function() { 

    var text = (list[index++ % list.length]).toString();
   document.getElementById("data").innerHTML = text 

}, 2000);
<div id="output">
    <h2 id="funny-day">Funny day: <span id="data" >(HERE IS WHERE I WANT THE OUTPUT TO BE)</span></h2>
</div>

我编辑了一些没有意义的事情,例如你的函数中没有-,而且你的markiser没有在范围内定义。

答案 1 :(得分:0)

这样的东西?

//Get elements
var funnyday = document.getElementById("funny-day");

//Array
var list = ["Sunny", "Cloudy", "Rainy"];

//Function to output array
var index = 0;

funnyday.innerHTML = ("Funny day: " + list[index]);
index=index >= list.length - 1 ? 0 : index+1;
setInterval(function() { 
  funnyday.innerHTML = ("Funny day: " + list[index]);
  index=index >= list.length - 1 ? 0 : index+1;
}, 2000);
<div id="output">
    <h2 id="funny-day">Funny day: </h2>
</div>