使用 JavaScript 删除具有特定类的所有元素
Remove all elements with specific Class using JavaScript
要删除具有特定类的所有元素:
- 使用该
document.querySelectorAll()
方法按类选择元素。 - 使用该
forEach()
方法遍历集合。 - 对每个元素调用该
remove()
方法以将其从 DOM 中删除。
这是示例的 HTML。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>bobbyhadz.com</title> </head> <body> <div class="box">Box 1</div> <div class="box">Box 2</div> <div class="box">Box 3</div> <script src="index.js"></script> </body> </html>
这是相关的 JavaScript 代码。
const boxes = document.querySelectorAll('.box'); boxes.forEach(box => { box.remove(); });
我们使用document.querySelectorAllbox
方法来选择DOM 中
所有类为 的元素。
该querySelectorAll
方法返回 a NodeList
,因此我们可以使用
NodeList.forEach
方法迭代元素集合。
getElementsByClassName 与 querySelectorAll
如果使用
document.getElementsByClassName
方法,则必须在调用该
forEach()
方法之前将结果转换为数组。
const boxes = Array.from(document.getElementsByClassName('box')); boxes.forEach(box => { box.remove(); });
请注意,该querySelectorAll
方法将选择器作为参数。在对该方法的调用中,我们在类名前加上了一个点.box
。
const boxes = document.querySelectorAll('.box'); boxes.forEach(box => { box.remove(); });
而该getElementsByClassName
方法将类名作为参数。
我们传递给方法的函数forEach()
被集合中的每个元素调用。
在每次迭代中,我们使用
Element.remove()
方法从 DOM 中移除元素。
删除所有具有特定类的元素而不删除它们的子元素
如果您需要删除具有特定类名的元素而不删除其子元素,请使用该replaceWith()
方法。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> </head> <body> <div class="box"> <span>Child 1</span> </div> <div class="box"> <span>Child 2</span> </div> <div class="box"> <span>Child 3</span> </div> <script src="index.js"></script> </body> </html>
这是相关的 JavaScript 代码。
const boxes = document.querySelectorAll('.box'); boxes.forEach(box => { box.replaceWith(...box.childNodes); });
要删除元素而不删除其子元素,我们必须用其子元素替换该元素。
childNodes属性返回一个
包含子元素、文本和注释的。NodeList
The replaceWith
method takes multiple, comma-separated elements with which to
replace the element it was called on, so we had to use the spread syntax (…)
to unpack the values from the NodeList
in the call to the method.
# Additional Resources
You can learn more about the related topics by checking out the following
tutorials:
- Remove all Classes from an Element using JavaScript
- Remove all Event Listeners from an Element using JavaScript
- Remove all Styles from an Element using JavaScript
- Remove a class from multiple elements using JavaScript
- Add/Remove class if it exists on Element in JavaScript
- Remove CSS Style Property from an Element using JavaScript
- Remove a DOM element by ID using JavaScript