文章目录
- 一、多元素操作案例
- 1、案例需求 - 多选一互斥按钮案例
- 2、案例核心要点 - getElementsByTagName 方法获取多个元素
- 3、案例核心要点 - 实现策略
- 4、完整代码示例
之前的 JavaScript 中使用 DOM 操作元素 , 都是 操作 单个元素 , 从本篇博客开始进行多元素的操作 ;
一、多元素操作案例
1、案例需求 - 多选一互斥按钮案例
实现如下效果 , 页面中有多个按钮 , 点击一个按钮 , 本按钮高亮显示 , 将其它按钮重置 ;
2、案例核心要点 - getElementsByTagName 方法获取多个元素
通过调用 Document 对象 或 Element 对象的 getElementsByTagName 方法 , 可以得到一个 HTMLCollection 对象 , 这是一个 伪数组 , 可通过数组下标获取 DOM 对象 ;
getElementsByTagName 函数原型如下 :
- tagName 参数 : 元素的标签名称 , 表示要查找的元素的标签名 , 该参数是不区分大小写 ;
- 返回一个 HTMLCollection 对象 , 这是一个动态更新的集合 , 包含了所有匹配的元素 , HTMLCollection 类似于数组 , 但它并不是一个真正的数组 , 无法使用数组的许多方法 , 可以使用数组下标访问 Element 元素 ;
HTMLCollection 是 实时集合 , 也就是 如果该方法被调用后 , 文档结构发生了改变 , 那么 HTMLCollection 集合中的元素 , 也要跟着更新 ;
调用 document.getElementsByTagName('button')
代码 , 可以获取 文档中所有的 button 标签 ,
通过 buttons[i]
可以获取指定的 第 i 个 元素 ;
3、案例核心要点 - 实现策略
总共三个 <button>
按钮 , 通过 document.getElementsByTagName('button')
可以获取这三个按钮 ;
互斥按钮效果 , 按下任意一个按钮之后 , 把三个按钮都设置为默认的状态 , 然后再将本次点击的按钮设置为高亮状态 ;
在循环中 , 设置该效果 :
4、完整代码示例
代码示例 :
运行效果 :
进入后 , 默认状态如下 :
点击按钮 1 , 按钮 1 高亮 ;
点击 按钮 3 , 按钮 1 高亮取消 , 按钮 3 高亮 ;
完整的动态效果如下 :