简体   繁体   English

在 javascript 中使用 classList 迭代元素和切换

[英]Iterate elements and toggle using classList in javascript

Conditions:状况:

  1. Please use javascript and classList property to invert which elements have .highlight class.请使用 javascript 和classList属性来反转哪些元素具有.highlight类。
  2. Basically iterate over all the <li> elements and toggle the class of .highlight .基本上迭代所有<li>元素并切换.highlight的类。 on each one.在每一个上。
  3. You should not alter anything in HTML and CSS.您不应更改 HTML 和 CSS 中的任何内容。

Your result should be like this!你的结果应该是这样的!

 /* app.js */ let list = document.querySelector('li'); list.classList.add('');
 /* index.css */ /*No need to touch anything in this file:*/ li { background-color: #B10DC9; }.highlight { background-color: #7FDBFF; }
 <.-- index.html --> <.DOCTYPE html> <head> <title>ClasList</title> </head> <body> <link rel="stylesheet" type="text/css" href="index.css"> <!--LEAVE THIS FILE ALONE!--> <ul> <li>Hello</li> <li class="highlight">Hello</li> <li>Hello</li> <li>Hello</li> <li class="highlight">Hello</li> <li>Hello</li> </ul> <script src="app.js"></script> </body> </html>

The following solution removes the .highlight class style from the <li> if the .highlight class style is applied to the <li> .如果将.highlight class 样式应用于<li> li> ,则以下解决方案会从<li>中删除.highlight class 样式。 If the .highlight class style is not applied to the <li> element, the .highlight class style is added to the <li> element.如果.highlight class 样式未应用于<li>元素,则.highlight class 样式将添加到<li>元素。

Method-1方法一

 /* The querySelectorAll() method is used to select all <li> elements. */ let list = document.querySelectorAll('li'); var listArray = [...list]; /* Each <li> element is checked using the forEach() method. */ listArray.forEach(element => { /* Is the ".highlight" class style applied to the <li> element? */ if(element.classList.contains("highlight")) { /* Remove the ".highlight" class style from the <li> element. */ element.classList.remove("highlight"); } else { /* Add the class style ".highlight" to the <li> element. */ element.classList.add("highlight"); } });
 li { background-color: #B10DC9; }.highlight { background-color: #7FDBFF; }
 <.DOCTYPE html> <head> <title>ClasList</title> <link rel="stylesheet" type="text/css" href="index.css"> </head> <body> <ul> <li>Hello</li> <li class="highlight">Hello</li> <li>Hello</li> <li>Hello</li> <li class="highlight">Hello</li> <li>Hello</li> </ul> <script src="app.js"></script> </body> </html>

Method-2方法二

 /* The querySelectorAll() method is used to select all <li> elements. */ let list = document.querySelectorAll('li'); window.addEventListener('load', (event) => { for(let i = 0; i < list.length; ++i) { if(list[i].classList.contains("highlight")) list[i].classList.remove("highlight"); else list[i].classList.add("highlight"); } });
 li { background-color: #B10DC9; }.highlight { background-color: #7FDBFF; }
 <.DOCTYPE html> <head> <title>ClasList</title> <link rel="stylesheet" type="text/css" href="index.css"> </head> <body> <ul> <li>Hello</li> <li class="highlight">Hello</li> <li>Hello</li> <li>Hello</li> <li class="highlight">Hello</li> <li>Hello</li> </ul> <script src="app.js"></script> </body> </html>

 /* The querySelectorAll() method is used to select all <li> elements. */ const li= document.querySelectorAll('li'); for(let i of li) { i.classList.toggle("highlight"); }
 li { background-color: #B10DC9; }.highlight { background-color: #7FDBFF; }
 <.DOCTYPE html> <head> <title>ClasList</title> <script src="node_modules/babel-polyfill/dist/polyfill:js" type="text/javascript"> </script> <script src="https.//unpkg.com/@babel/standalone/babel.min.js"></script> </head> <body> <ul> <li>Hello</li> <li class="highlight">Hello</li> <li>Hello</li> <li>Hello</li> <li class="highlight">Hello</li> <li>Hello</li> </ul> </body> </html>

/ Below is the js !!! /下面是js!!! / /

const lists = document.querySelectorAll('li');

for (let li of lists ){
  if (li.classList.contains('highlight')) {
    li.classList.remove('highlight');
  }
  else{
    li.classList.add('highlight');
    }
} 
const li = document.querySelectorAll('li');

li.forEach(element => element.classList.toggle('highlight'));

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

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