wonder_uix
@wonder_uix

Onclick — как добавить и убрать класс при нажатии у одного элемента из списка?

Есть список и рядом ссылки. Как при нажатии на ссылку добавить класс (например active) элементу из списка по id и убрать его если нажата другая ссылка с другим id?

<ul class="list">
  <li id="item1"> text 1 </>
  <li id="item2"> text 2 </>
  <li id="item3"> text 3 </>
</ul>
<div class="links">
  <a href="#item1"> add class to text 1 </a>
  <a href="#item2"> add class to text 2 </a>
  <a href="#item3"> add class to text 3 </a>
</div>


Смог сделать такой вариант с onclick но это только для единичного элемента

<a href="#item1" onclick="activeList()" > add class to text 1 </a>


function activeList() {
  document.getElementById('item1').classList.add('active');
};
  • Вопрос задан
  • 293 просмотра
Решения вопроса 3
@MrColdCoffee
web
<a href="#item1" onclick="activeList(event,this)" > add class to text 1 </a>
  <a href="#item2" onclick="activeList(event,this)"> add class to text 2 </a>
  <a href="#item3" onclick="activeList(event,this)" > add class to text 3 </a>


function activeList(e,element) {
	e.preventDefault();
	let li_id = element.getAttribute('href').substr(1);		
	document.querySelectorAll('.list li').forEach( (item)=>{		
		item.classList.toggle("active", item.id == li_id  );
	});
}
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Ответ написан
Комментировать
DanArst
@DanArst Куратор тега CSS
Гриффиндор в моде при любой погоде!
Вы кстати забыли закрыть теги <li>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы