Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.06.2020, 18:28
Аспирант
Отправить личное сообщение для AleksSergSB Посмотреть профиль Найти все сообщения от AleksSergSB
 
Регистрация: 20.11.2016
Сообщений: 74

Удаление классов в цикле - неожиданный результат
<div>
		<ul>
			<li class='test'>первый</li>
			<li class='test'>второй</li>
			<li class='test'>третий</li>
			<li class='test'>четвертый</li>
			<li class='test'>пятый</li>
			<li class='test'>шестой</li>
			<li class='test'>седьмой</li>
		</ul>
	</div>

let bounceInElements = document.getElementsByClassName('test');
		const bounceInElementsLength = bounceInElements.length;
		console.log('length: '+bounceInElementsLength)
		for(let i=0; i<bounceInElementsLength;i++){
			bounceInElements[i].classList.remove('test')
			console.log('i: '+i)
			console.log(bounceInElements[i])
		}

Хочу удалить несколько классов в цикле. Результат неожиданный - удаляются только классы в нечетных индексах.
Такое чувство, будто прогулял какую-то важную лекцию по js

1) Почему так?
2) как удалить все найденные классы?

пример в кодепен:
https://codepen.io/Aleksandr_/pen/VwevoVR?editors=1011
Ответить с цитированием
  #2 (permalink)  
Старый 09.06.2020, 18:37
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

getElementsByClassName - это живая коллекция элементов
после удаления класса изменяется сама коллекция
попробуйте
let bounceInElements = document.querySelectorAll('.test');
Ответить с цитированием
  #3 (permalink)  
Старый 09.06.2020, 18:40
Аспирант
Отправить личное сообщение для AleksSergSB Посмотреть профиль Найти все сообщения от AleksSergSB
 
Регистрация: 20.11.2016
Сообщений: 74

Сообщение от Vlasenko Fedor Посмотреть сообщение
getElementsByClassName - это живая коллекция элементов
после удаления класса изменяется сама коллекция
попробуйте
let bounceInElements = document.querySelectorAll('.test');
Да емае, точно!
Спасибо за подсказку.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление классов с высокой производительностью arkadii_parovozov Общие вопросы Javascript 11 18.02.2017 16:05
вывести результат AJAX в div с динамическим ид voron121 AJAX и COMET 6 30.05.2016 18:46
удаление классов Trues Элементы интерфейса 10 18.03.2015 15:29