初学前端

JavaScript中的Dom1节点介绍

2019-11-03  本文已影响0人  简约酒馆

当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。 

DOM是“Document Object Model”(文档对象模型)的首字母缩写。

什么是DOM?

文档对象模型 -通过dom可以动态改变文档的内容

动态改变文档内容的原理:

1.解析dom树(如HTML)并生成DOM树

2.通过DOM标的接口+编程语言改变文档的内容

DOM节点

在HTML DOM 中,所有事物都是节点。DOM 是被视为节点树的HTML。

HTML文档中的所有内容都是节点:

整个文档是一个文档节点

每个HTML 元素是元素节点

HTML元素内的文本是文本节点

每个HTML 属性是属性节点

注释是注释节点

DOM节点的关系

n节点父、子和同胞

节点树中的节点彼此拥有层级关系。

父(parent)、子(child)和同胞(sibling)等术语用于描述 这些 关系。父节点拥有子节点。同级的子节点被称为同胞(兄弟或姐妹)。

 在节点树中,顶端节点被称为根(root)

每个节点都有父节点、除了根(它没有父节点)

 一个节点可拥有任意数量的子节点

同胞是拥有相同父节点的节点

DOM树形结构

HTML DOM 节点树

HTML DOM 将 HTML文档视作树结构。这种结构被称为节点树:


DOM节点类型

节点属性


1.nodeName

定义和用法

nodeName 属性指定节点的节点名称。

如果节点是元素节点,则 nodeName 属性返回标签名。

如果节点是属性节点,则 nodeName 属性返回属性的名称。

文本节点的nodeName 永远  #text

对于其他节点类型,nodeName 属性返回不同节点类型的不同名称。

2.nodeValue

定义和用法:nodeValue属性设置或返回指定节点的节点值。

注释:如果您希望返回元素的文本,请记住文本始终位于文本节点中,并且您必须返回文本节点的值(element.childNodes[0].nodeValue)。

对于元素节点,因为本身不直接包含文本,所以nodeValue是不可用的。返回永远是null

3.nodeType

定义和用法:nodeType 属性返回以数字值返回指定节点的节点类型。

如果节点是元素节点,则 nodeType 属性将返回 1。

如果节点是属性节点,则 nodeType 属性将返回 2。

如果节点是文本节点,则 nodeType 属性将返回 3。

如果节点是注释节点,则 nodeType 属性将返回 8。

getElementById()

getElementById()方法可返回对拥有指定ID 的第一个对象的引用。

在操作文档的一个特定的元素时,最好给该元素一个id 属性,为它指定一个(在文档中)唯一的名称,然后就可以用该ID 查找想要的元素。

getElementsByName()

getElementsByName()方法可返回带有指定名称的对象的集合。

语法:document.getElementsByName(name)

另外,因为一个文档中的name 属性可能不唯一(如HTML 表单中的单选按钮通常具有相同的name 属性),所有getElementsByName()方法返回的是元素的数组,而不是一个元素

getElementsByTagName()

getElementsByTagName() 方法可返回带有指定标签名的对象的集合。(数组)

getElementsByTagName()方法返回元素的顺序是它们在文档中的顺序。

如果把特殊字符串 "*" 传递给getElementsByTagName() 方法,它将返回文档中所有元素的列表,元素排列的顺序就是它们在文档中的顺序。

注释:传递给getElementsByTagName() 方法的字符串可以不区分大小

getElementsByClassName()

返回文档中所有指定类名的元素集合

元素属性


innerHTML

innerHTML属性设置或返回标签的开始和结束标签之间的HTML

outerHTML

outerHTML.当前元素的开始标记和结束标记之间的所有文本和HTML标签


outerText 设置(包括标签)或获取(不包括标签)对象的文本 

innerText 设置或获取位于对象起始和结束标签内的文本 

四者的区别

简单的说innerHTML和outerHTML、innerText与outerText的不同之处在于: 1)、innerHTML与outerHTML在设置对象的内容时包含的HTML会被解析,而innerText与outerText则不会。2)、在设置时,innerHTML与innerText仅设置标签内的文本,而outerHTML与outerText设置包括标签在内的文本。 

getAttribute()

getAttribute()方法返回指定属性名的属性值

setAttribute()

setAttribute()方法添加指定的属性,并为其赋指定的值。如果这个指定的属性已存在,则仅设置/更改值  

语法: element.setAttribute(属性名,属性值)

tagName

tagName 属性返回被选元素的标签名

语法:elementNode.tagName

与nodeName的区别: tagName只能用在元素节点上;而nodeName可以用在任何的节点上。


上一篇下一篇

猜你喜欢

热点阅读