js 通过class获取元素的方法

在使用 JavaScript 操作 DOM 元素的过程中,经常会遇到需要根据某个元素的类名(class)来获取元素的情况。虽然我们可以通过 ID 或标签名来获取元素,但是使用类名获取元素是一种更加灵活和方便的方法。在本文中,我们将介绍如何使用 JavaScript 通过类名获取元素的方法。
通过 document.getElementsByClassName() 方法获取元素
JavaScript 提供了一个 getElementsByClassName() 方法,可以通过指定的类名获取文档中所有对应的元素。这个方法会返回一个类数组对象,其中包含了所有具有指定类名的元素。
// 获取所有类名为 "box" 的元素
var boxes = document.getElementsByClassName("box");
// 遍历获取到的元素
for (var i = 0; i < boxes.length; i++) {
console.log(boxes[i]);
}
在上面的示例代码中,我们使用 getElementsByClassName("box") 方法获取所有类名为 “box” 的元素,并将获取的元素存储在 boxes 变量中。然后用 for 循环遍历获取到的元素,并在控制台输出每个元素。
需要注意的是,getElementsByClassName() 方法返回的是一个类数组对象,而不是真正的数组。如果要对其使用数组的方法,可以将其转换为真正的数组。
通过 querySelectorAll() 方法获取元素
除了 getElementsByClassName() 方法外,还可以使用 document.querySelectorAll() 方法来获取具有指定类名的元素。这个方法使用 CSS 选择器语法来选择元素,更加灵活且强大。
// 获取所有类名为 "box" 的元素
var boxes = document.querySelectorAll(".box");
// 遍历获取到的元素
boxes.forEach(function(box) {
console.log(box);
});
在上面的示例代码中,我们使用 querySelectorAll(".box") 方法获取所有类名为 “box” 的元素,并将获取的元素存储在 boxes 变量中。然后使用 forEach 方法遍历获取到的元素,并在控制台输出每个元素。
通过 classList 属性来操作元素的类名
除了获取元素的方法外,还可以使用 classList 属性来操作元素的类名。classList 属性是一个只读属性,返回一个元素的类名集合,提供了添加、删除和切换类名的方法。
// 获取一个具有 "box" 类名的元素
var box = document.querySelector(".box");
// 添加类名
box.classList.add("highlight");
// 移除类名
box.classList.remove("highlight");
// 切换类名
box.classList.toggle("highlight");
在上面的示例代码中,我们首先获取一个具有 “box” 类名的元素,并存储在 box 变量中。然后使用 classList 属性的 add()、remove() 和 toggle() 方法来添加、删除和切换类名。
结语
通过本文的介绍,我们了解了如何使用 JavaScript 通过类名获取元素的方法。使用 getElementsByClassName() 方法和 querySelectorAll() 方法可以方便地获取具有指定类名的元素,而通过 classList 属性可以操作元素的类名。这些方法和属性可以帮助我们更加灵活和便捷地操作 DOM 元素,实现更加复杂和灵活的页面交互效果。
极客笔记