Warm tip: This article is reproduced from serverfault.com, please click

How can i change the content inside the so that it can match the current clicked button?

发布于 2020-11-28 15:23:38

i'm trying to change the content inside the ul so that it can match the current clicked button .

<div class="btns">
    <button class="active"></button>
    <button></button>
    <button></button>
</div>
<ul class="dynamiq_content">
    <li class="active"></li>
    <li></li>
    <li></li>
 </ul>

<script>
//variables 
     const ContentBtns = $(".btns button");
     const content = $(".dynamiq_content li");
//function 
    ContentBtns.on("click", function () {
          $(this).addClass("active").siblings().removeClass("active");
          content.addClass("active");
    });

</script>
Questioner
Ossama
Viewed
0
Göksel ÖZER 2020-11-28 23:48:34

If you want to match buttons and li element so you can work with array.

Here is the snippet:

//variables 
     var ContentBtns = $(".btns button");
     var content = $(".dynamiq_content li");
//function 
for(let i=0;i<=ContentBtns.length;i++){
ContentBtns.eq(i).on("click", function(){
  content.removeClass();
  ContentBtns.removeClass();
  ContentBtns.eq(i).addClass("active");
  content.eq(i).addClass("active");
});
}
.active{color:red}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="btns">
    <button class="active">a</button>
    <button>b</button>
    <button>c</button>
</div>
<ul class="dynamiq_content">
    <li class="active">a</li>
    <li>b</li>
    <li>c</li>
 </ul>