Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过单击“下一步”按钮逐个显示具有相同类的div?_Javascript_Jquery - Fatal编程技术网

Javascript 如何通过单击“下一步”按钮逐个显示具有相同类的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

我在同一个班上有课。我需要将类添加到下一个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="#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')
}