8、文档对象

文档对象

  • 关于DOM
  • Node对象
  • Document对象
  • Element对象
  • Attr对象
  • Text对象
  • Comment对象

一、关于DOM

1.1、什么是DOM?

​ DOM(document Object Model),文档对象模型,用于处理网页内容的一些方法和接口。

1.2、节点继承关系图

在这里插入图片描述

1.3、DOM树中的基本节点

  • Document:文档对象
  • Element:元素节点(标签)
  • Attr:属性节点(标签属性)
  • Text:文本(标签种包含的文本)
  • Comment:注释节点(标签中包含的注释)

二、Node对象

2.1、说明

​ Node节点是所有节点的根节点,Node节点的所有属性和方法都被其子节点所继承。

2.2、属性

  • parentNode:父节点,没有则为null
  • firstChild:第一个Node子节点(Node节点包括元素节点、属性节点、文本节点、注释节点等)
  • lastChild:最后一个Node子节点
  • nodeValue:Text或Comment节点的内容。
  • nodeName:当前节点的名称(小写),如document、div、input、text等。
  • nodeType:当前节点的类型(number),数值与节点类型的匹配关系如下:
    • 1:Element
    • 2:Attribute
    • 3:Text
    • 8:Comment
    • 9:Document
  • innerText:返回/设置当前节点及其后代的文本内容。
  • innerHTML:返回/设置当前节点的HTML内容。

2.3、方法

  • appendChild(node):在该元素的子节点列表末尾追加(并返回)一个子节点。
  • insertBefor(newNode,oldNode):在指定节点前面插入(并返回)一个新节点。
  • removeChild(node):删除(并返回)指定子节点。
  • replaceChild(newNode,oldNode):替换(并返回)节点。
  • cloneNode([boolean]):复制(并返回)一个节点。默认复制当前节点,如果传入true,则递归复制所有子节点。

2.4、使用

//单独拿出来还真不好举例子

三、Document对象

3.1、说明

​ Document对象代表整个HTML,可以说是文档的根。

3.2、属性

3.3、方法

1)、获取节点

  • getElementById(id):通过标签的id属性返回对应的Element对象

  • getElementsByName(name):通过标签的name属性返回所有符合的Element对象集合。

  • getElementsByClassName(class):通过标签的class属性返回所有符合的Element对象集合。

  • getElementsByTagName(标签名):返回所有当前标签的Element对象集合。

​ html元素的id和name就像人的身份证号和名字一样,一人只有一个,但元素的class属却可以有多个值的(值与值之间用空格隔开),且不同元素的可以有相同的class属性值。根据class匹配元素必须所有的class值都匹配,不能多或者少。例如:<img class="123 456 789">document.getElementsByClassName("123 456")是不匹配的

2)、创建节点

  • createElement(标签名):指定标签名,创建一个Element节点,返回Element对象
  • createTextNode(文本内容):创建一个包含指定文本内容的Text节点,返回Text对象
  • createComment(注释内容):创建一个包含指定注释内容的Comment节点,返回Comment对象
  • createAttribute(name):创建指定名称的属性节点,返回Attribute对象

3.4、使用

1)、获取节点

<div class="divs" id="card">第一个盒子</div>
<div class="divs" >第二个盒子</div>
<div>第三个盒子</div>
<input type="text" name="txt">
<script>
    let div1 = document.getElementById("card");
	console.log(div1.id);//card
	let nameList = document.getElementsByName("txt");
	console.log(nameList[0].name)//txt
	let classList = document.getElementsByClassName("divs");
	console.log(classList[1].className)//divs
	let tagList = document.getElementsByTagName("div");
	console.log(tagList[2].tagName);//DIV
</script>

2)、创建节点


四、Element对象

4.1、说明

​ 所有的HTML元素节点都是Elemeng对象的子节点,所以Elemeng对象的所有属性、方法都可以在元素节点上使用。

4.2、属性

  • parentNode:当前节点的父节点,没有则为null

  • children:当前结点的所有Element子节点(一级)构成的集合

  • firstElemengChild:返回该节点的第一个Elment子节点

  • lastElementChild:返回该节点的最后一个Elment子节点

  • previousElementSibling:当前结点的前一个Element节点

  • nextElementSibling:当前节点的后一个Element节点

  • attributes:获取该元素所有的属性集合。获取属性值:元素.attributes[0].value

4.3、方法

  • getAttribute(属性名):获取指定属性的值。
  • setAttribute(属性名,属性值):设置、添加指定属性的值。
  • removeAttribute(属性名):删除该元素的指定属性。

4.4、使用

五、Attr对象

5.1、说明

​ Attr对象封装的是一个HTML元素的所有属性信息。一般都是一个集合

5.2、属性

  • name:返回属性的名称。如display、width等
  • value:设置/返回属性的值。

5.3、方法

​ 【啥也没有】

5.4、使用

	【留坑】

六、Text对象

七、Comment对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值