博主信息
博文 29
粉丝 1
评论 0
访问量 22616
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
JavaScript的DOM获取遍历元素
Pharaoh
原创
991人浏览过

类数组

类数组是一个对象,只不过很像一个数组,类数组也有 lenght 属性,但是类数组并不具备数组的原型方法,所以类数组不能使用数组的方法

  • 常见的类数组:argments(函数的参数集合),Nodelist(节点列表),HTMLCollection(DOM 列表)等等

  • 类数组转为数组的方法:Array.form() , 展开运算符…rest :[...类数组]

DOM

文档对象模型,把 HTML 文档转换成节点树,每个 HTML 标签都是一个对象,可以使用 javascript 访问,修改这些对象

几个获取 DOM 对象的 API

  • querySelectorAll('CSS选择器') :选择一组对象
  • querySelector('CSS选择器') : 选择一组中的一个
  • getElementById('id') :使用 id 获取单个元素
  • getElementsByTagName('标签名') :使用标签名获取,不要忘了 Element 后面的s,它返回的是一个元素的集合
  • getElementsByClassName('标签名') :使用标签名获取,不要忘了 Element 后面的s,它返回的是一个元素的集合
  • 最常用的就是前两个

DOM 操作的几个快捷方式

document 是节点的入口,最顶层的节点可以作为 document 的属性

  • document.doucmentElement :获取 HTML 文档节点
  • document.body :获取整个 body 标签节点
  • document.head :获取整个 head 标签的节点

  • body.children : 获取某个节点的所有子节点(不包含文本节点)

  • body.firstElementChild : 获取某个节点的第一个节点(不包含文本节点)
  • body.lastElementChild : 获取某个节点的最后一个子节点(不包含文本节点)
  • body.previousElementsSiBling :获取某个节点的同级前一个节点(不包含文本节点)
  • div.nextElementsSiBling:获取某个节点的同级下一个节点(不包含文本节点)
  • body.parentElement:获取某个节点的父节点

获取表单里的元素和值(更快更优雅的方式)

  • document.forms获取所有表单类数组,document.forms.name/id获取某个表单
  • form.elements 获取表单所有元素类数组

实例

  1. <script>
  2. // 获取表单的类数组
  3. // let form = document.querySelector('form'); 不够优雅
  4. let form = document.forms.login;
  5. console.log(form);
  6. // 获取表单后,可以继续获取表单里的任何元素的类数组
  7. console.log("获取表单后,可以继续获取表单里的任何元素的数组");
  8. let elem = form.username.value;
  9. console.log(elem);
  10. // 所有的元素,不管嵌套了多深,都可以通过form.elements找到
  11. </script>

DOM遍历

  • 普通for循环,for in循环都不理想,而且for in会把不想看到的也遍历出来
  • 使用arr.forEach((value,index,data) => {})方法
    • value是遍历数组的值
    • index是遍历数组的索引(可省略)
    • data是数组本身(可省略)
    • forEach()方法内不支持break
  1. let last = document.querySelectorAll("ul li");
  2. console.log("遍历数组");
  3. // forEach()方法对数组的每个元素执行一次提供的函数
  4. // 大多数类数组没有forEach方法,Nodelist类型的有,所以没有转为真数组
  5. forEach(value,index,array)
  6. last.forEach((value, index, data) => {
  7. console.log(value);
  8. console.log(index);
  9. if (index % 2 === 0) {
  10. value.style.backgroundColor = "red";
  11. } else {
  12. value.style.backgroundColor = "lightgreen";
  13. }
  14. });

批改老师:PHPzPHPz

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学