博客列表 >Javascript的类数组、获取DOM元素API、表单元素获取、遍历DOM树

Javascript的类数组、获取DOM元素API、表单元素获取、遍历DOM树

P粉932932019
P粉932932019原创
2022年07月28日 00:08:12516浏览

一、类数组

  1. // 定义数组
  2. let arr = ["name", "age", "sex", "add"];
  3. console.log(arr);
  4. // 定义对象
  5. let obj = {
  6. 0: "name",
  7. 1: "age",
  8. 2: "sex",
  9. 3: "add",
  10. length: 4,
  11. };
  12. console.log(obj);

通过打印可以看出数组与对象的区别就是Prototype构造器不一样,其实array也是属于object的一个特殊分支。

1、纯数组:

  • 每个值对应键值/索引,默认从0开始递增。
  • 有length属性,数组长度
  • 数组也是对象

2、类数组:

  • 其实就是对象字面量,与数组相似,也拥有length属性。

3、访问形式:

  • 数组:
    console.log(arr[0]);

  • 类数组:
    console.log(obj[0]);

二者的访问形式是完全一样的。

但是,如果使用对象的点语法访问类数组则会报错,是因为标识符不能以数字开头

console.log(obj.0); //报错

二、获取DOM元素的API

1、querySelectorAll(css-selector),返回类数组。

参数css-selector: css选择器,css怎么获取就怎么写!


- 获取DOM元素
const items = document.querySelectorAll(".list .item");(注意.list与.item之间有个空格)


从上图可以看出打印出来的Prototype是类数组Nodelist(也叫:节点列表对象)

- 获取节点列表对象的键值
console.log(items.keys());


从上图可以看出打印出来的是数组,接口是Iterator,表示可以被遍历,可以使用for-of进行遍历

- 使用for-of进行数组遍历

  1. for (let k of items.keys()) console.log(k); //打印键名
  2. for (let v of items.values()) console.log(v); //打印键值
  3. for (let kv of items.entries()) console.log(kv); //打印数组

- 使用forEach进行数组遍历

  1. items.forEach((v) => console.log(v));
  2. // 这是箭头函数简化结果,原生写法不赘述

2、querySelectory(),返回一个DOM对象

返回类数组集合中的“第一个”


演示1:返回类数组中的第一个元素(使用querySelectorAll())

  1. const items = document.querySelectorAll(".list .item:first-of-type");
  2. // 返回Nodelist类数组,虽然只有一组数组
  3. console.log(items[0]);
  4. // 返回数组中的“第一组”的值:<li class="item"></li>

演示2:返回类数组中的第一个元素(使用querySelector()),等同于上述演示1

  1. const items = document.querySelector(".list .item");
  2. // 返回数组中的“第一组”的值:<li class="item"></li>

3、快捷方式获取

  1. // 获取head
  2. console.log(document.querySelector("head"));
  3. console.log(document.head); //<head>...</head>
  4. // 获取body
  5. console.log(document.querySelector("body"));
  6. console.log(document.body); //<body>...</body>
  7. // 获取title
  8. console.log(document.querySelector("title").textContent); //注意此处语法
  9. console.log(document.title); //这是文档title标题

上述代码,第一行为完整写法,第二行为简写。

三、获取表单元素

  1. // 获取元素name或者id
  2. console.log(document.forms.regist.uname);
  3. console.log(document.forms.login);
  4. // 获取元素值
  5. console.log(document.forms.regist.uname.value);

获取ID值等同于获取name值,为了添加样式方便,尽量使用id。

四、遍历DOM树

  1. // 使用类获取
  2. let ul = document.querySelector(".list");
  3. // 返回元素类型的节点,是个类数组
  4. let larray = ul.children;
  5. // 把类数组转换成纯数组
  6. let array1 = Array.from(larray);
  7. // 把类数组转换成纯数组
  8. let array2 = [...larray];
  9. // 遍历数组
  10. array2.forEach((li) => (li.style.color = "red"));
  11. // 获取第一个元素的两种方式
  12. array2[0].style.color = "green";
  13. ul.firstElementChild.style.color = "green";
  14. // 获取第二个元素
  15. ul.firstElementChild.nextElementSibling.style.color = "yellow";
  16. // 获取最后一个元素
  17. ul.lastElementChild.style.color = "blue";
  18. // 获取最后一个元素的前一个
  19. ul.lastElementChild.previousElementSibling.style.color = "pink";
  20. // 获取父节点
  21. ul.lastElementChild.parentElement.style.border = "2px solid";

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议