如何在页面加载时显示nodeList的第一个元素?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在页面加载时显示nodeList的第一个元素?相关的知识,希望对你有一定的参考价值。

我使用'next'和'previous'按钮循环遍历此数组中的元素。但是我想在页面加载时显示数组的第一个元素index [0],而不是必须单击“下一个”才能看到第一个元素。

是否最好以某种方式切换css类?或者是否有一个更简单的解决方案可以在JS代码中完成?

<body>
<div id='entry1' class='entry'>
Entry1
</div>

<div class ='entry'>
Entry2
</div>

<div class ='entry'>
Entry3
</div>

<div class ='entry'>
Entry4
</div>

<p id="filler"></p>
<button id="back">PREVIOUS</button>
<button id="forward">NEXT</button>
</body>

<script>
var divs = document.querySelectorAll(".entry"); 
var i=-1;
var text = "";

document.getElementById("back").addEventListener("click", function 
previous() {
if (i > 0) {
text = divs[--i].textContent;
}
document.getElementById("filler").innerhtml = text;
});

document.getElementById("forward").addEventListener("click", function 
next(){
if (i < divs.length - 1) {
text = divs[++i].textContent;
}
document.getElementById("filler").innerHTML = text;
});
</script>

这是我的JS小提琴:

JS Fiddle

答案

您可以使用第一个div的文本内容简单地初始化p。此外,您现在需要从索引0开始。

var divs = document.querySelectorAll(".entry");
var i=0;
// set the initial content to be the one from the first div
var text = divs[0].textContent;
var filler = document.getElementById("filler");
filler.innerHTML = text;

document.getElementById("back").addEventListener("click", function previous() {
  if (i > 0) {
    text = divs[--i].textContent;
  }

  filler.innerHTML = text;
});

document.getElementById("forward").addEventListener("click", function next(){
  if (i < divs.length - 1) {
    text = divs[++i].textContent;
  }

  filler.innerHTML = text;
});

以上是关于如何在页面加载时显示nodeList的第一个元素?的主要内容,如果未能解决你的问题,请参考以下文章

如何在页面加载时显示 ajax 加载 gif 动画?

如何使用内部 html 和引导程序使这个简单的 jQuery 弹出模式在页面加载时显示

如何在 react.js 中的页面加载时显示引导模式?

如何仅在 Angular 的某些页面上显示标题组件(现在它仅在重新加载时显示)

如何在 .DAE 环境和角色加载时显示加载屏幕?

在页面加载时显示Tinybox 2弹出框