【学习 JavaScript】 JavaScript 教程 JavaScript 简介 JavaScript 用法 JavaScript Chrome 中运行 JavaScript 输出 JavaScript 语法 JavaScript 语句 JavaScript 注释 JavaScript 变量 JavaScript 数据类型 JavaScript 对象 JavaScript 函数 JavaScript 作用域 JavaScript 事件 JavaScript 字符串 JavaScript 字符串模板 JavaScript 运算符 JavaScript 比较 JavaScript 条件语句 JavaScript switch 语句 JavaScript for 循环 JavaScript while 循环 JavaScript break 和 continue 语句 JavaScript typeof JavaScript 类型转换 JavaScript 正则表达式 JavaScript 错误 JavaScript 调试 JavaScript 变量提升 JavaScript 严格模式 JavaScript 使用误区 JavaScript 表单 JavaScript 表单验证 JavaScript 验证 API JavaScript 保留关键字 JavaScript this JavaScript let 和 const JavaScript JSON JavaScript void JavaScript 异步编程 JavaScript Promise JavaScript 代码规范 JS 函数 JavaScript 函数定义 JavaScript 函数参数 JavaScript 函数调用 JavaScript 闭包 JS 类 JavaScript 类 JavaScript 类继承 JavaScript 静态方法 JS HTML DOM DOM 简介 DOM HTML DOM CSS DOM 事件 DOM EventListener DOM 元素 HTMLCollection 对象 NodeList 对象 JS 高级教程 JavaScript prototype JavaScript Number 对象 JavaScript String JavaScript Date(日期) JavaScript Array(数组) JavaScript Boolean(布尔) JavaScript Math(算数) JavaScript RegExp 对象 JS 浏览器BOM JavaScript Window JavaScript Window Screen JavaScript Window Location JavaScript Window History JavaScript Navigator JavaScript 弹窗 JavaScript 计时事件 JavaScript Cookie JS 库 JavaScript 库 JavaScript 测试 jQuery JavaScript 测试 Prototype JS 实例 JavaScript 实例 JavaScript 对象实例 JavaScript 浏览器对象实例 JavaScript HTML DOM 实例 JavaScript 总结 JS 参考手册

HTMLCollection对象学习笔记

HTMLCollection是DOM树中一种常见的对象,表示某个上下文环境(通常是document对象)下所有符合特定选择器的元素组成的集合。在JS中,我们可以通过多种方式获取到一个HTMLCollection对象,并进行操作。

获取HTMLCollection对象

1. getElementBy系列方法

使用getElementById, getElementsByClassName, getElementsByTagName, getElementsByName等方法,可以获取满足相应条件的元素组成的HTMLCollection对象。

javascriptCopy Code
const container = document.getElementById('container'); const paragraphs = container.getElementsByTagName('p');

2. children属性

使用children属性可以获取当前元素的子元素组成的HTMLCollection对象。

htmlCopy Code
<div id="container"> <p>第一个段落</p> <p>第二个段落</p> <p>第三个段落</p> </div>
javascriptCopy Code
const container = document.getElementById('container'); const children = container.children;

3. querySelectorAll方法

使用querySelectorAll方法可以获取满足相应CSS选择器规则的元素组成的NodeList对象,需要将其转化为HTMLCollection对象才能进行操作。

htmlCopy Code
<div id="container"> <p class="paragraph">第一个段落</p> <p class="paragraph">第二个段落</p> <p class="paragraph">第三个段落</p> </div>
javascriptCopy Code
const container = document.getElementById('container'); const paragraphs = container.querySelectorAll('.paragraph'); const paragraphsCollection = paragraphs.entries();

操作HTMLCollection对象

使用HTMLCollection对象的方法和属性,可以对其进行常规的操作,比如遍历、获取元素、判断是否存在等。

1. 遍历

可以使用for循环或forEach方法来进行遍历。

javascriptCopy Code
for (let i = 0; i < paragraphs.length; i++) { console.log(paragraphs[i].innerText); } paragraphs.forEach((p) => { console.log(p.innerText); });

2. 获取元素

可以使用item方法或下标来获取指定位置的元素。

javascriptCopy Code
const secondParagraph = paragraphs.item(1); const thirdParagraph = paragraphs[2]; const lastParagraph = paragraphs.item(paragraphs.length - 1);

3. 判断是否存在

可以使用contains方法来判断某个元素是否存在于HTMLCollection中。

javascriptCopy Code
console.log(container.contains(secondParagraph)); // true console.log(paragraphs.contains(container)); // false

实例

创建一个包含三个段落的HTML页面,并使用JS获取并操作其中的元素。

htmlCopy Code
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>HTMLCollection对象学习笔记</title> </head> <body> <div id="container"> <p class="paragraph">第一个段落</p> <p class="paragraph">第二个段落</p> <p class="paragraph">第三个段落</p> </div> <script> const container = document.getElementById('container'); const paragraphs = container.querySelectorAll('.paragraph'); paragraphs.forEach((p) => { console.log(p.innerText); }); </script> </body> </html>

输出结果为

Copy Code
第一个段落 第二个段落 第三个段落