JS之DOM

DOM的作用:

在网页界面开发中,我们除了可以看到htmlcss所完成的静态界面外,还可以看到很多动态的效果。比如,tab切换、轮播图、放大镜等,而这些动态效果都是需要DOM操作来完成。
总而言之,可以用DOM实现网页的动态交互效果。

DOM的概念:

DOM Document Object Model)文档对象模型。
Document,文档,指的是我们网页上的标记和内容。
Object Model,对象模型,指定的是把网页上的标记和内容看成一个对象。
对象可以理解为是一个工具库(api),库中的工具可以帮助我们操作网页上的标记和内 容。

 

浏览器会把结构化文档(比如HTML和XML)解析成一系列的节点对象,再由这些节点组成一个树状结构(DOM Tree)。所有的节点和最终的树状结构,都有规范的对外接口(工具的操作方式),以达到使用编程语言操作文档的目的(比如增删内容)。所以,DOM可以理解成文档(HTML文档、XML文档和SVG文档)的编程接口(操作工具)

节点对象
DOM的最小组成单位叫做节点(对象),一个文档的树形结构(DOM树),就是由各种不同类型的节点组成。

节点的类型
对于HTML文档,节点主要有以下六种类型:Document节点、DocumentType节点、Element节点、Attribute节点、Text节点和DocumentFragment节点。

节点类型

名称

含义

Document          9

文档节点

整个文档(document)

DocumentType     10

文档类型节点

文档的类型(比如<!DOCTYPE html>)

Element           1

元素节点

HTML元素(比如<body>、<a>等)

Attribute         2

属性节点

HTML元素的属性(比如class=”right”)

Text              3

文本节点

HTML文档中出现的文本

DocumentFragment 11

文档碎片节点

文档的片段(临时仓库)

通过对文档树的观察,节点对象从树顶到以下各个节点是有级别的。并且节点与节点之间也是各自有关系的。
祖孙关系、父子关系、兄弟关系

节点操作

获取节点对象

获取单个节点对象为该节点对象

获取多个节点对象为一个数组, 可以通过索引方式获取单个节点对象

1. 通过标签的id获取单个节点对象

  document.getElementById()

2. 通过标签名获取一组节点对象

  document.getElementsByTagName()

3. 通过name属性获取一组节点对象

  document.getElementsByName()

4. 通过类名获取一组节点对象

  document.getElementsByClassName()

5. 通过选择器来获取单个节点对象

  document.querySelector()   # id ('#id值')  class('.class值')  tag('tag名')

6. 通过选择器来获取一组节点对象

  document.querySelectorAll()

script标签的位置

1. body标签最下面

<script>    </script>

2. head标签中

<script> window.onload = function(){}  </script>

节点对象常用操作

nodeType   获取节点类型所对应的数字

tagName  获取节点对象对应的标签名

innerHTML  设置节点对象所对应的内容(从对象的起始位置到终止位置的全部内容,不包括Html标签.)

outerHTML  设置节点对象所对应的内容(除了包含innerHTML的全部内容外, 还包含对象标签本身.)

innerText 设置节点对象所对应的内容(仅是文本内容)

id  设置或获取节点对象所对应的标签的id属性值

className  设置或获取节点对象所对应的标签的class属性值

title  设置或获取节点对象所对应的title属性值

操作节点对象所对应的标签的属性的工具

getAttribute('标签属性名')   获取标签的指定属性的值,也可以获取自定义属性

setAttribute('标签属性名','值')  设置标签的指定属性,也可以设置自定义属性

removeAttribute('标签属性名')  移除指定标签的属性

创建节点对象

document.createElement('标签名')  创建一个Element类型的节点对象

document.createTextNode('文本内容')  创建一个Text类型的节点对象

插入节点

节点对象.append(node)  插入一个或多个节点或字符串,没有返回值

节点对象.appendChild(node)  把一个节点对象追加到指定节点对象的最后面

节点对象.insertBefore(newNode,oldNode)  把一个节点追加到指定节点对象之前

删除节点

节点对象.remove()  删除节点自身

节点对象.removeChild(node)  删除节点对象中指定的节点

节点对象的遍历

childNodes  获取当前元素节点的所有子节点

children  获取一组只是Element类型的子节点  与childNodes类是

firstChild  获取当前元素节点的第一个子节点

firstElementChild  获取元素类型为Element的第一个节点

lastChild  获取当前元素节点的最后一个子节点

lastElementChild  获取当前元素节点的最后一个子节点Element

parenNode  获取当前节点的父节点

previousSibling  获取当前节点的前一个同级节点

previousElementSibling  获取当前节点的前一个同级节点Element

nextSibling  获取当前节点的后一个同级节点

nextElementSibling  获取当前节点的后一个同级节点Element

表单相关的属性节点对象

节点对象.value  针对所有表单元素

  获取或设置表单项的值  可读可写

节点对象.checked  针对单选框  多选框

  设置或获取checked属性  可读可写

  节点对象.checked = true  被选中

  节点对象.checked = false  不被选中

节点对象.selected  针对下拉框

  获取或设置 selected属性   可读可写

  节点对象.selected = true  被选中

  节点对象.selected = false  不被选中

节点对象.readOnly   针对文本框  密码框  文本域

  获取或设置readOnly属性   可读可写

  节点对象.readOnly = true   

  节点对象.readOnly = false

节点对象.disabled   针对下文本框  密码框  文本域

  获取或设置disabled属性   可读可写

  节点对象.disabled = true

  节点对象.disabled = false

操作节点对象所对应的样式

  标签节点对象.style['样式属性名'] = '样式属性值'

  标签节点对象.style.样式属性名 = '样式属性值'

  注:

    对于font-size,text-height等,后面单词的首字母要大写

猜你喜欢

转载自www.cnblogs.com/yuyafeng/p/10966577.html
今日推荐