2015-06-08 4 views
-2

Все, что я пытаюсь сделать, это удалить один класс из массива элементов, я не могу найти его прямое решение.Удаление класса из нескольких элементов

Я получаю список вкладок элементов, как этот

var tabs = document.getElementsByClassName("tab"); 

Эти элементы могут или не могут иметь класс под названием "активной вкладке. Я хочу удалить этот класс «active-tab» из всех элементов, которые у них есть или нет. Как я могу это сделать?

сырье JS

ответ

0

Использование Regex заменить, вероятно, самый простой способ (так как вы зависит от .className который является просто пространственно-разделителями строк классов). Я предполагаю, что вы также можете использовать split, удалить конкретный класс, а затем воссоединиться с ним, но это похоже на большее усилие.

var tabs = document.getElementsByClassName('tab'); 
 
for (var i = 0; i < tabs.length; i++){ 
 
    var tab = tabs[i]; 
 
    
 
    tab.className = tab.className.replace(/((^|\b)active-tab(\b|$))/g,''); 
 
}
.active-tab { color: #f0f; }
<div class="tab active-tab">active tab</div> 
 
<div class="tab">tab</div> 
 
<div class="tab">tab</div> 
 
<div class="tab">tab</div>

+1

Это вряд ли хороший способ сделать это. @OP Вместо этого используйте объект 'element.classList'. –

+0

@AwalGarg: Пока вы не возражаете, что он не поддерживается/shim'd для

Смежные вопросы