简体   繁体   English

如何使用 vanilla JavaScript 在 Ul li 上设置和删除类?

[英]How to have default and remove class on Ul li using vanilla JavaScript?

I have two ul with the same class, the concept I tried to achieve is when clicking the active li should have border color change.我有两个 ul 具有相同的类,我试图实现的概念是单击活动 li 时应该更改边框颜色。 I have succeeded in that, the concept I need is I want to have the default same border color present on first ul li, and if I click other it should get removed and color should apply on clicked one.我已经成功了,我需要的概念是我希望在第一个 ul li 上显示默认的相同边框颜色,如果我点击其他,它应该被删除,并且颜色应该应用于点击的一个。 The code I have tried so far.到目前为止我尝试过的代码。

Any help will be appreciated !!任何帮助将不胜感激 !!

 var x = document.querySelectorAll('.random-value li'); for (var i = 0; i < x.length; i++) { x[i].addEventListener("click", function() { var selectedEl = document.querySelector(".selected"); if (selectedEl) { selectedEl.classList.remove("selected"); } this.classList.add("selected"); }, false); };
 .random-value li{ margin: 0 0 15px 0; border: 1px solid green; padding: 15px 26px; } .random-value .selected{ border: 1px solid red; }
 <ul id="first" class="random-value"> <li>200 </li> <li>2010 </li> <li>2100 </li> <li>2030 </li> </ul>

I think this is what you are looking for,我想这就是你要找的

 //Making first option as Highlighted document.querySelectorAll('.random-value li')[0].classList.add("selected"); var x = document.querySelectorAll('.random-value li'); for (var i = 0; i < x.length; i++) { x[i].addEventListener("click", function() { var selectedEl = document.querySelector(".selected"); if (selectedEl) { selectedEl.classList.remove("selected"); } this.classList.add("selected"); }, false); };
 .random-value li{ margin: 0 0 15px 0; border: 1px solid green; padding: 15px 26px; } .random-value .selected{ border: 1px solid red; }
 <ul id="first" class="random-value"> <li>200 </li> <li>2010 </li> <li>2100 </li> <li>2030 </li> </ul>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM