Есть код на табы:
function openTab(evt, servName) {
// Объявить все переменные
var i, tabcontent, tablinks;
// Получить все элементы с помощью class="tabcontent" и спрятать их
tabcontent = document.getElementsByClassName("tab");
for (i = 0; i < tabcontent.length; i++) {
tabcontent[i].style.display = "none";
}
// Получить все элементы с помощью class="tablinks" и удалить class "active"
tablinks = document.getElementsByClassName("all_tab_link");
for (i = 0; i < tablinks.length; i++) {
tablinks[i].className = tablinks[i].className.replace(" active", "");
}
// Показать текущую вкладку и добавить "active" класс для кнопки, которая открыла вкладку
document.getElementById(servName).style.display = "block";
evt.currentTarget.className += " active";
}
Но если этой функцией задать несколько табов, то с одного будет уходить класс, вообще думаю вы поняли по коду. Надо сделать что бы можно было несколько создавать, наверное data атрибут заюзать.