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

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

OC的PHP大牛之路
OC的PHP大牛之路原创
2022年07月26日 17:47:17396浏览

JS作用域

1.行内脚本:用在事件属性(onclick)
2.文档脚本:<script>xxx</script>
3.外部脚本:<script src='xxx.js'></script>

类数组

1.纯数组(真数组)

  1. const colors=['red','green','blue'];
  2. console.log(colors);
  3. // 0: "red"
  4. // 1: "green"
  5. // 2: "blue"
  6. // length: 3

特点:
1.每个值对应的键名:从0开始的正整数,如0,1,2,3…
2.有一个length属性,表示数组长度

2.类数组(对象字面量)

  1. const animals={
  2. 0:'dog',
  3. 1:'cat',
  4. 2:'pig',
  5. length:3,
  6. };
  7. console.log(animals);

类数组与纯数组的区别:原型不一样,纯数组基于构造器Array创建,类数组基于构造器Object创建;类
数组大量用于DOM操作。

3.访问(纯数组与类数组成员访问一样)

  1. console.log(colors[0],colors[1],colors[2]);
  2. console.log(animals[0],animals[1],animals[2]);

获取DOM元素

二种获取模式:
1.一组:使用querySelectorAll(),返回类数组
2.一个:使用querySelector(),返回一个DOM对象

  1. <ul class="list">
  2. <li class="iten">item1</li>
  3. <li class="iten">item2</li>
  4. <li class="iten">item3</li>
  5. <li class="iten">item4</li>
  6. <li class="iten">item5</li>
  7. <li class="iten">item6</li>
  8. </ul>

querySelectorAll(css-selector)

参数:css选择器

  1. // NodeList:节点列表对象
  2. const items=document.querySelectorAll('.list .item');
  3. console.log(items);
  4. // forEach(回调函数)
  5. // function(当前正在遍历的值,当前值的索引/键名)
  6. // 第二个值(当前值的索引/键名)可选
  7. items.forEach(function(v){
  8. console.log(v);
  9. v.style.backgroundColor='yellow';
  10. });
  11. // 简化
  12. items.forEach(v=>(v.style.backgroundColor='yellow'));

querySelector(css-selector)

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

  1. // 获取集合中的第一个元素
  2. const first=document.querySelector('.list .item')
  3. console.log(first);

注:querySelectorAllquerySelector可以在任何元素上调用

表单元素的获取

  1. <form action="login.php" method="post" id="login">
  2. <fieldset class="login">
  3. <legend>用户登录</legend>
  4. <label for="email">邮箱:</label>
  5. <input type="email" name="email" id="email" value="admin@php.cn" autofocus />
  6. <label for="password">密码:</label>
  7. <input type="password" name="password" id="password" value="123456" />
  8. <button>提交</button>
  9. </fieldset>
  10. </form>

1.获取表单(form.id)
console.log(document.forms.login);
2.获取表单控件(input.name)
console.log(document.forms.login.email);
3.获取表单控件的值(input.name.walue)
console.log(document.forms.login.email.value);

遍历DOM树

节点类型

  1. window:全局对象
  2. document:文档对象,html文件
  3. element:元素对象,<ul><li><table><form>…
  4. text:文本对象,item1,item2…
    1. <ul class="list">
    2. <li class="item">item1</li>
    3. <li class="item">item2</li>
    4. <li class="item">item3</li>
    5. <li class="item">item4</li>
    6. <li class="item">item5</li>
    7. <li class="item">item6</li>
    8. </ul>
    1. let ul=document.querySelector('.list');
    2. console.log(ul.childNodes);
    3. // ul.children:只返回元素类型的节点(类数组)
    4. console.log(ul.children);
    5. // 将类数组转为真数组
    6. console.log([...ul.children]);
    7. // 遍历
    8. // 第一个
    9. ul.firstElementChild.style.backgroundColor='yellow';
    10. // 第二个
    11. ul.firstElementChild.nextElementSibling.style.backgroundColor='red';
    12. // 最后一个
    13. ul.lastElementChild.style.backgroundColor='green';
    14. // 最后一个的前一个
    15. ul.lastElementChild.previousElementSibling.style.backgroundColor='blue';
    16. // 父节点(元素节点或文档节点)
    17. ul.lastElementChild.parentElement.style.border='2px solid red'
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议