2017-02-08 2 views
-2

Ich habe div mit der gleichen Klasse. Ich brauche Klasse in die nächste div hinzuzufügen und die Klasse für das vorherige div zu entfernen, indemWie div einzeln angezeigt werden, die gleiche Klasse haben, indem Sie auf die nächste Schaltfläche klicken?

<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> 

Here i am nächsten Button haben die Klasse verpasst que. Wenn ich auf den nächsten Knopf klicke, sollte es zum nächsten verpassten que div gehen.

Antwort

1
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') 
} 
+0

Das ist fast gut, aber Active enthält das Array, weil Filter es zurückgibt und im nächsten Code versuchen Sie, classList.remove auf active anzuwenden, was nicht möglich ist, weil es Array ist. Neue Variable wie 'let newActive = aktiv [0]' und dann 'newActive.classList.remove ('tab - active') ' sollte das Problem lösen :) –

+0

Oh ja, ich habe es gerade auf diese Sekunde vergessen Anrufe. Danke, netter Anruf! :) – thesublimeobject

+0

Cool, und eine andere Sache, die Sie vielleicht vergessen, ist zu beachten, wenn es keine anfängliche 'tab - aktive 'Klasse auf DOM-Element, aktiv wäre leer und nextActive würde Fehler zurückgeben, dass aktiv ist undefined.So Autor Od Code sollte Geben Sie das erste Element der ersten Klasse, oder tun Sie es mit JS :) –

Verwandte Themen