Skip to content Skip to sidebar Skip to footer

I Can't Add Or Remove A Class

I am trying to remove a class and add a class within one function. But when I click on the button nothing is happening. This is my code What I am trying to get is that the class i

Solution 1:

You just need to use a combination of the three methods .contains(), .add() and .remove() from the element.classList property along with a simple if/else statement (or a ternary operator if you prefer that) as can be seen in the Code Snippet below:

var btn = document.querySelector('.likebutton');

functionunlikeVerhaal() {
    var ul = document.getElementById("unliked");
    var l = document.getElementById("liked");
    
    if (ul.classList.contains("onzichtbaar")) {
        ul.classList.remove("onzichtbaar");
        l.classList.add("onzichtbaar");
        console.log("Inspect your elements to see the class switching!")
    } else {
        l.classList.remove("onzichtbaar");
        ul.classList.add("onzichtbaar");
        console.log("Inspect your elements to see the class switching!")
    }
}

btn.addEventListener("click", unlikeVerhaal)
.onzichtbaar {background-color: green;}
<li><buttontype="button"class="likebutton"><divclass="unliked"id="unliked">A</div><divid="liked"class="onzichtbaar">B</div></button> 777
</li>

You can either inspect the elements to see the class switching between the two or you can just watch the green background styling which is applied to an element with the onzichtbaar class name switching between the two.

Solution 2:

This will works as you expect:

functionunlikeVerhaal(e) {
    e.preventDefault;
    document.getElementById('unliked').classList.add('onzichtbaar');
    document.getElementById('liked').classList.remove('onzichtbaar'); 
} 

document.getElementById('likebutton').addEventListener('click', unlikeVerhaal);

Just change submit to click and remove type from button

Fiddle

Update:

Updated fiddle

Post a Comment for "I Can't Add Or Remove A Class"