0

I'm trying to create an Html button with the class "btn inactive" that when clicked, changes to "btn active". I've tried using className, but that only resulted in errors. Anyone experienced with Javascript know how to do this?

  • Does this answer your question? [jquery change class name](https://stackoverflow.com/questions/3452778/jquery-change-class-name) – Lewis Jun 12 '20 at 21:23

2 Answers2

0

No need for jQuery:

document.querySelector('button.btn').addEventListener('click', function() {
  this.classList.toggle('inactive');
  this.classList.toggle('active');
  console.log(this.className);
});
<div id="test">
  <button class="btn inactive">Click me!</button>
</div>

With jQuery:

$('button.btn').click(function(){
  $(this).toggleClass('inactive');
  $(this).toggleClass('active');
  console.log(this.className);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="test">
  <button class="btn inactive">Click me!</button>
</div>
Lewis
  • 4,285
  • 1
  • 23
  • 36
0

You need to just use button.classList.toggle().

const button = document.getElementById('this-button');

button.addEventListener('click', function(){
  this.classList.toggle('active');
  this.classList.toggle('inactive');
});
.active { color: blue }
.inactive { color: red }
<button id="this-button" class="btn active">Click me</button>
Lewis
  • 4,285
  • 1
  • 23
  • 36
TheMisir
  • 4,083
  • 1
  • 27
  • 37