DOM学习笔记

本文详细解读DOM,介绍如何通过ID、标签名、HTML5选择器及关系定位获取界面元素,涵盖querySelector、querySelectorAll、getElementById、getElementsByClassName等方法,助你高效操作DOM树。

目录

(一)、DOM简介

(二)获取界面元素

2.1、获取页面元素

2.2、通过关系获取节点

2.3、直接获取的方式


(一)、DOM简介

1.1、什么是DOM

文档对象模型(Document Object Model,简称 DOM),是 W3C 组织推荐的处理可扩展标记语言(HTML或者XML)的标准编程接口

W3C 已经定义了一系列的 DOM 接口,通过这些 DOM 接口可以改变网页的内容、结构和样式。

  • 文档:一个页面就是一个文档,DOM 中使用 document 表示

  • 元素:页面中的所有标签都是元素,DOM 中使用 element 表示

  • 节点:网页中的所有内容都是节点(标签、属性、文本、注释等),DOM 中使用 node 表示 DOM 把以上内容都看做是对象

(二)获取界面元素

2.1、获取页面元素

document节点指的是界面所有节点信息汇总

获取页面中的元素可以使用以下几种方式:

  • 根据 ID 获取

  • 根据标签名获取

  • 通过 HTML5 新增的方法获取

  • 特殊元素获取

2.2.1、H5获取界面节点的方式:

①document.querySelector("放选择器")

  • 符合选择器的第一个元素

  • 没找到返回null

②document.querySelectorAll("放选择器")

  • 符合选择器的第所有元素

  • 默认找类数组

  • 后面加索引找具体某一个值

  • 没有返回[]

         console.log(document.querySelector('p'));
         console.log(document.querySelectorAll('p'[3]));

2.2.2、直接获取界面节点的方式

①document.getElementById(“id名”)

  • (查找速度最快)根据Id名字

  • 没找到返回null

②document.getElementsByClassName("class名")

  • 根据class值

  • 类数组

③document.getElementsByTagName(“标签名字”)

  • 根据标签名字

  • 类数组

④document.getElementsByName(”name值“)

  • 根据name 值

  • 类数组

document.getElementsByTagName(查找速度最快)根据标签名字,类数组
document.getElementsByClassName根据class值,类数组
document.getElementById根据id 值,节点对象
document.getElementsByName根据name 值,类数组
         //根据标签名字获取节点,取出来为类数组
         let p1 = document.getElementsByTagName('p');
         console.log(p1[1].nodeName);
 ​
         //根据类名字获取节点,取出来为类数组
         let p2 = document.getElementsByClassName('three')
         console.log(p2);
 ​
         //根据id获取节点,取出来为节点对象
         let p3 = document.getElementById('four')
         console.log(p3);
 ​
         //根据name值获取节点,取出来类数组
         console.log(document.getElementsByName('text1'));//对象

2.2、通过关系获取节点

.parentElement获取父节点
 //获取父节点 console.log(document.querySelector('li').parentElement);
.children子元素们,只包含选择出来的标签,类数组
.childNodes子节点们,包含文本,类数组
  //获取孩子节点   console.log(document.querySelector('ul').childNodes);//包含文本,类数组     console.log(document.querySelector('ul').children);//只包含选择出来的标签,类数组
兄弟
.previousElementSibling对象 前一个兄弟节点
.previousSibling对象 前一个兄弟节点 包括文本
.nextSibling对象 后一个兄弟节点 包括文本
.nextElementSibling对象 后一个兄弟节点
  //获取兄弟节点
 console.log(document.querySelectorAll('li')[1].previousElementSibling);//对象 前一个兄弟节点
 console.log(document.querySelector('li').previousSibling);//对象 前一个兄弟节点 包括文本
 console.log(document.querySelector('li').nextSibling);//对象 后一个兄弟节点 包括文本
 console.log(document.querySelector('li').nextElementSibling);//对象 后一个兄弟节点 

2.3、直接获取的方式

 document.body  //body标签
 document.forms  //form表单们
 document.anchors //a标签们
 document.images //图片们
 document.links //连接们
 document.URL //当前文档的网址

删除节点

node.remove()
parent.removeChild(子级node)
node.innerHTML=""
parent.replaceChild(newNode,oldNode)

新增节点

node.append(节点)
node.appendChild(节点)
node.innerHTML+="新节点"
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值