摘要:在本教程中,您将学习如何使用 getElementsByClassName() 方法根据类名选择元素。
介绍 getElementsByClassName() 方法
getElementsByClassName() 方法返回一个类似数组的对象,其中包含具有指定类名的子元素。
以下是 getElementsByClassName() 方法的语法
getElementsByClassName(names)在此语法中
names参数表示要匹配的一个或多个类名。多个类名用空格隔开。
如果找不到具有类名的元素,该方法将返回 undefined。
请注意,getElementsByClassName() 方法在 document 元素和其他任何 DOM 元素上都可用。
当您在 document 元素上调用 getElementsByClassName() 方法时,它将搜索整个文档并返回匹配的元素
let elements = document.getElementsByClassName(names);Code language: JavaScript (javascript)但是,当您在特定元素上调用 getElementsByClassName() 方法时,它将返回该特定元素的具有给定类名的后代
let elements = rootElement.getElementsByClassName(names);Code language: JavaScript (javascript)该方法返回 elements,它是匹配元素的实时 HTMLCollection。
JavaScript getElementsByClassName() 方法示例
让我们来看一些使用 getElementsByClassName() 方法的示例。
假设您有以下 HTML 文档
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>JavaScript getElementsByClassName</title>
</head>
<body>
<header>
<nav>
<ul id="menu">
<li class="item">HTML</li>
<li class="item">CSS</li>
<li class="item highlight">JavaScript</li>
<li class="item">TypeScript</li>
</ul>
</nav>
<h1>getElementsByClassName Demo</h1>
</header>
<section>
<article>
<h2 class="secondary">Example 1</h2>
</article>
<article>
<h2 class="secondary">Example 2</h2>
</article>
</section>
</body>
</html>Code language: HTML, XML (xml)1) 在元素上调用 JavaScript getElementsByClassName() 的示例
以下示例说明了如何使用 getElementsByClassName() 方法选择 <li> 项目,这些项目是 <ul> 元素的后代
let menu = document.getElementById('menu');
let items = menu.getElementsByClassName('item');
let data = [].map.call(items, item => item.textContent);
console.log(data);Code language: JavaScript (javascript)输出
['HTML', 'CSS', 'JavaScript', 'TypeScript']Code language: JavaScript (javascript)工作原理
- 首先,使用
getElementById()方法选择具有类名menu的<ul>元素。 - 然后,使用
getElementsByClassName()方法选择<li>元素,这些元素是<ul>元素的后代。 - 最后,通过借用
Array对象的map()方法,创建一个包含<li>元素文本内容的数组。
2) 在文档上调用 JavaScript getElementsByClassName() 的示例
要搜索具有类 heading-secondary 的元素,您可以使用以下代码
let elements = document.getElementsByClassName('secondary');
let data = [].map.call(elements, elem => elem.textContent);
console.log(data);Code language: JavaScript (javascript)输出
["Example 1", "Example 2"]Code language: JavaScript (javascript)此示例在 document 对象上调用 getElementsByClassName() 方法。因此,它将在整个文档中搜索具有类 secondary 的元素。
摘要
- 使用 JavaScript
getElementsByClassName()方法选择具有一个或多个类名的元素。
测验
本教程是否有用?