Javascript 如何通过单击“下一步”按钮逐个显示具有相同类的div?
我在同一个班上有课。我需要将类添加到下一个div,并通过单击next按钮删除上一个div的类Javascript 如何通过单击“下一步”按钮逐个显示具有相同类的div?,javascript,jquery,Javascript,Jquery,我在同一个班上有课。我需要将类添加到下一个div,并通过单击next按钮删除上一个div的类 <ul class="tabs questiontabs"> <li class="tab completed_que disabled"><a href="#questions1">1</a></li> <li class="tab completed_que disabled"><a href="#questi
<ul class="tabs questiontabs">
<li class="tab completed_que disabled"><a href="#questions1">1</a></li>
<li class="tab completed_que disabled"><a href="#questions2">2</a></li>
<li class="tab missedque"><a class="active" href="#questions3">3</a></li>
<li class="tab completed_que disabled"><a href="#questions4">4</a></li>
<li class="tab missedque"><a href="#questions5">5</a></li>
<li class="tab completed_que disabled"><a href="#questions6">6</a></li>
<li class="tab missedque"><a href="#questions7">7</a></li>
<li class="tab missedque"><a href="#questions8">8</a></li>
</ul>
这是我的课。当我单击“下一步”按钮时,它应该转到下一个未命中的que div。这几乎很好,但active包含数组,因为筛选器返回它,并且在下一个代码中您尝试应用classList.remove on active,这是不可能的,因为它是数组。创建新变量,例如
let newActive=active[0]
然后newActive.classList.remove('tab--active')
应该可以解决问题:)哦,是的,我在第二次调用时忘记了它。谢谢,打得好!:)很酷,还有一件事你们可能忘记了,若DOM元素上并没有初始的选项卡--active
类,active将是空的,nextractive将返回错误active未定义。所以代码的作者应该给第一个元素初始类,或者用JS:)我完全同意。我真的以为会是这样……这是不是假设得太多了?我不知道。我要加一条说明。你的回答很好,我只是指出这一点,因为有时候一些不了解JS的人真的会发现这是一个错误,尝试c/p所有东西,然后看到它不起作用,可能会无缘无故地对你投反对票:)注意一下就好了,防止无缘无故地投反对票,并给出更好的解释:)
let next = document.getElementById('next')
let tabs = document.getElementsByClassName('tab')
// Add active state to first tab
tabs[0].classList.add('tab--active')
next.addEventListener('click', function() {
let active = [...tabs].filter(tab => tab.classList.contains('tab--active'))
let nextActive = active[0].nextElementSibling
active[0].classList.remove('tab--active')
nextActive.classList.add('tab--active')
}