本博客相关参考文档 :
根据类名获取 DOM 元素 , 需要 使用 HTML5 新增的方法 , Document.getElementsByClassName 函数获取 ;
Document.getElementsByClassName 函数 是 获取 文档中所有指定类名的 DOM 元素 , 得到的结果是 HTMLCollection 伪数组对象 , 其中封装了若干 Element 对象 ;
var elements = document.getElementsByClassName(className);
Element.getElementsByClassName 函数 是 获取 Element 元素下的所有 指定类名的 DOM 元素 , 返回结果也是 HTMLCollection 对象 ;
var elements = rootElement.getElementsByClassName(className);
相关参考文档 :
在下面的代码中 , 直接调用了 document.getElementsByClassName("box")
函数 , 可以获取整个网页中所有 类名为 'box'
的 DOM 元素 ;
代码示例 :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!-- 设置 meta 视口标签 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no,maximum-scale=1.0,minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>JavaScript</title>
<style></style>
</head>
<body>
<div class='box'>Hello</div>
<div class='box'>Hello</div>
<div>Hello</div>
<div id="nav">
<div>Hello2</div>
<div class='box'>Hello2</div>
<div class='box'>Hello2</div>
</div>
<script>
// 注意 : HTML 文档加载顺序是从上到下加载
// 这里要先加载标签 , 然后加载 JavaScript 脚本
// 获取 nav 下的 class 类名为 box 的元素 , 其它的 元素 不获取 ★
var elements = document.getElementsByClassName("box");
// 控制台打印获取结果
console.log(elements);
// 遍历 HTMLCollection 中封装的 DOM 元素
for (var i = 0; i < elements.length; i++) {
// 打印 DOM 元素
console.log(elements[i]);
// 改变 DOM 元素
elements[i].innerHTML = "你好";
}
</script>
</body>
</html>
执行结果 :
在下面的代码中 ,
先通过调用 Document.getElementById 函数 , 获取 元素 id 为 nav 的 DOM 元素 ;
var element = document.getElementById('nav');
然后通过调用上述 Element 元素的 getElementsByClassName 函数 , 获取元素下的 class 类名为 box 的元素 ;
elements = element.getElementsByClassName("box");
代码示例 :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!-- 设置 meta 视口标签 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no,maximum-scale=1.0,minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>JavaScript</title>
<style></style>
</head>
<body>
<div class='box'>Hello</div>
<div class='box'>Hello</div>
<div>Hello</div>
<div id="nav">
<div>Hello2</div>
<div class='box'>Hello2</div>
<div class='box'>Hello2</div>
</div>
<script>
// 注意 : HTML 文档加载顺序是从上到下加载
// 这里要先加载标签 , 然后加载 JavaScript 脚本
// 只获取 nav 下的 class 类名为 box 的元素
// 先通过 id 获取 Element
var element = document.getElementById('nav');
// 获取 nav 下的 class 类名为 box 的元素 , 其它的 元素 不获取 ★
var elements = element.getElementsByClassName("box");
// 控制台打印获取结果
console.log(elements);
// 遍历 HTMLCollection 中封装的 DOM 元素
for (var i = 0; i < elements.length; i++) {
// 打印 DOM 元素
console.log(elements[i]);
// 改变 DOM 元素
elements[i].innerHTML = "你好";
}
</script>
</body>
</html>
执行结果 :