DOM 获取DOM元素节点

本文详细介绍了DOM模型的基本概念,包括元素节点、属性节点和类名操作。重点讲解了如何通过各种方法获取DOM元素、设置属性值、操作类名,以及H5中特有的自定义属性和classList方法。适合前端开发者深入理解DOM操作技巧。
摘要由CSDN通过智能技术生成

1.什么是DOM?

  • DOM:document object model 文档对象模型。
  • DOM是由节点组成的。

节点的类型

  • 元素节点:HTML标签
  • 文本节点:标签中的文字(包含空格和换行。)
  • 属性节点:标签的属性

DOM可以做什么?

  • 可以操作HTML元素(增删改查)
  • 增:添加,在一个DOM节点下添加一个子节点,相当于动态新增了一个HTML标签。
  • 删:删除。将一个节点从HTML中删除,相当于删除了该节点的所有内容以及它包含的子节点。
  • 改:改变。改变DOM节点中的内容,包含HTML标签中的内容以及标签的属性。
  • 查:查找。对DOM进行操作之前,必须先查找到该DOM节点。
  • 设置元素的属性值,设置元素的样式。
  • 事件的触发响应:事件源 事件 处理函数

2.获取DOM元素节点

获取元素节点

getElementById

  • 语法:document.getElementById(“id值”);
  • 功能:通过ID获取元素节点。
  • 返回值:找到的元素节点,没有返回null。

getElementsByTagName()

  • 语法:查找范围(节点).getElementsByTagName(“标签名”);
  • 功能:通过标签名获取元素节点。
  • 返回值:伪数组,类数组。

getElementsByName

  • 语法:document.getElementsByName(“name属性值”);
  • 功能:通过name属性获取元素节点。
  • 主要用在表单中
  • 返回值:伪数组,类数组。

getElementsByClassName()

  • 语法:查找范围(节点).getElementsByClassName(“class值”);
  • 功能:通过class属性获取元素节点。
  • 返回值:伪数组,类数组.

【注意】该方法IE8以下不兼容

querySelector()

  • 语法:document.querySelector(“css选择器”);
  • 功能:通过css选择器获取元素节点
  • 返回值:找到符合条件的第一个元素节点。

【注意】该方法IE8以下不兼容。

querySelectorAll()

  • 语法:document.querySelector(“css选择器”);
  • 功能:通过css选择器获取元素节点
  • 返回值:伪数组

【注意】该方法IE8以下不兼容。

3.操作属性节点

标签上的属性

原生属性

  • 标签天生就有的属性
  • 语法:元素节点.属性名
  • 读取:元素节点.属性名
  • 修改:元素节点.属性名 = “值”

【注意】 class是一个特殊情况,不能直接用class,而是用className

自定义属性

  • 开发人员自己定义的属性。不是标签自带的。自定义属性不能使用点语法调用。而是要使用三个方法去操作。(查改删)
  • 元素节点.getAtrribute(“属性名”)
  • 获取元素上的属性名对应的属性值
  • 元素节点.setAtrribute(“属性名”,“属性值”)
  • 修改/新增元素上的属性名对应的属性值。
  • 元素节点.removeAtrribute(“属性名”)
  • 删除元素节点上属性名对应的属性。

【痛点】自定义属性与原生属性不好区分。

H5自定义属性

  • 元素节点上有一个dataset。里面包含了所有的H5自定义属性。
  • 获取H5自定义属性值。
  • 语法:元素节点.dataset.属性名
  • 设值
  • 语法:元素节点.dataset.属性名 = “值”
  • 删除
  • 语法:delete 元素节点.dataset.属性名

4.操作类名 class

原生属性的方法

  • 获取类名:元素.className.
  • 修改类名:元素.className = “值”
  • 追加:元素.className = 元素.className + “值” 值前面要加一个空格
  • 删除一个类名:
  • 全部删除:元素.className = “”;
  • 删除一个:

5.H5操作类名

  • H5提供了一套便于我们操作类名的方法。
  • 元素节点对象上有一个classList的属性。

新增类名

  • 语法:元素.classList.add(“类名”)

删除类名

  • 语法:元素.classList.remove(“类名”)

切换类名

  • 语法:元素.classList.toggle(“类名”)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值