Как удалить все классы у найденных элементов?

202
20 августа 2018, 16:50

Есть html код, необходимо чтобы js удалял у всех найденных элементов определенный класс.

var st = document.getElementById('st'); 
st.classList.remove('st');
.st { 
  color: red; 
}
<div class="block"> 
  <div id="st" class="st">1</div> 
</div> 
<div class="block"> 
  <div id="st" class="st">2</div> 
</div> 
<div class="block"> 
  <div id="st" class="st">3</div> 
</div>

Необходимо, чтобы класс удалился у всех элементов. Желательно сделать так, чтобы код был автономным и удалял класс если элементов станет 5.

Answer 1

var st = document.querySelectorAll('[id="st"]'); 
for (var i = 0; i < st.length; i++) { 
  st[i].classList.remove('st'); 
}
.st { 
  color: red; 
}
<div class="block"> 
  <div id="st" class="st">1</div> 
</div> 
<div class="block"> 
  <div id="st" class="st">2</div> 
</div> 
<div class="block"> 
  <div id="st" class="st">3</div> 
</div>

Answer 2

Когда у элемента есть атрибут id, это значит, что на странице будет только один элемент с таким id. А метод document.getElementById(''); всегда возвращает только один элемент.

Для выборки нескольких элементов обычно используют метод document.querySelectorAll('');.

Как только выбрали все элементы, можно пройтись по ним циклом, и с помощью метода el.classList.remove(''); удалить нужный класс.

Answer 3
    if($('.st').length==5) {
       $('.block').each(function(){
         $(this).children().removeClass('st');
       });
    }
READ ALSO
Как ограничить вызов функции в цикле, ровно 1 раз за итерацию?

Как ограничить вызов функции в цикле, ровно 1 раз за итерацию?

Есть цикл с 5 итерациями, каждая длиться по 15 секунд, в цикл помещена функция, задача, ограничить вызов функции на каждой итерацииПроловал...

172
Как перебрать массив?

Как перебрать массив?

Мне нужно перебрать массив из двух значений, чтобы на выходе получить все значения между нимиНапример: ['10-07-2018', '18-07-2018'] = > ['11-07-2018', '12-07-2018',...

199
всплывающая форма jQuery

всплывающая форма jQuery

Да вроде нормально всё

195