- делегат - тогда вам не нужен идентификатор на кнопке, который в любом случае должен быть уникальным.
- используйте тернар или переключите classList
document.querySelector(".dropdown").addEventListener("click", function(e) {
const tgt = e.target;
if (tgt.classList.contains("dropbutton")) {
tgt.nextElementSibling.classList.toggle("show")
}
})
.drop-content {
display: none
}
.show {
display: block
}
<div class="dropdown">
<button class="dropbutton">Home</button>
<div class="drop-content">
<a href="#">Test1</a>
<a href="#">Test2</a>
<a href="#">Test3</a>
</div>
<button class="dropbutton">Arrivals</button>
<div class="drop-content">
<a href="#">Test111</a>
<a href="#">Test222</a>
<a href="#">Test3</a>
</div>
<button class="dropbutton">Clothing</button>
<div class="drop-content">
<a href="#">Test1123</a>
<a href="#">Test212</a>
<a href="#">Test3</a>
</div>
<button class="dropbutton">Schoes</button>
<div class="drop-content">
<a href="#">Test1</a>
<a href="#">Testaasdf2</a>
<a href="#">Test3</a>
</div>
</div>
Если вы хотите, чтобы контент находился под кнопками, а кнопки по горизонтали, используйте атрибуты данных
document.querySelector(".dropdown").addEventListener("click", function(e) {
const tgt = e.target;
if (tgt.classList.contains("dropbutton")) {
const oldActive = document.querySelector("button.active");
document.getElementById(oldActive.dataset.tgt).classList.toggle("show",0)
document.getElementById(tgt.dataset.tgt).classList.toggle("show",1)
oldActive.classList.toggle("active",0)
tgt.classList.toggle("active",1)
}
})
.drop-content {
display: none
}
.show {
display: block
}
.active { font-weight:bold }
<div class="dropdown">
<button class="dropbutton active" data-tgt="home">Home</button>
<button class="dropbutton" data-tgt="arrivals">Arrivals</button>
<button class="dropbutton" data-tgt="clothing">Clothing</button>
<button class="dropbutton" data-tgt="shoes">Schoes</button>
<div class="drop-content show" id="home">Home
<a href="#">Test1</a>
<a href="#">Test2</a>
<a href="#">Test3</a>
</div>
<div class="drop-content" id="arrivals">Arrivals
<a href="#">Test111</a>
<a href="#">Test222</a>
<a href="#">Test3</a>
</div>
<div class="drop-content" id="clothing">Clothing
<a href="#">Test1123</a>
<a href="#">Test212</a>
<a href="#">Test3</a>
</div>
<div class="drop-content" id="shoes">Shoes
<a href="#">Test1</a>
<a href="#">Testaasdf2</a>
<a href="#">Test3</a>
</div>
</div>