这两天学习JS的时候接触了几次DOM,那么今天有接触了DOM,而且是主要讲授关于DOM的知识,那么什么是DOM呢?
文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口。在网页上,组织页面(或文档)的对象被组织在一个树形结构中,用来表示文档中对象的标准模型就称为DOM。目的是为了能让js操作html元素而指定的一个规范.DOM是HTML在浏览器中的表示形式,允许您操纵页面。
D(document):document的意思是文档,在dom中会将HTML这个页面给解析为一个文档,并在解析的同时会提供一个 document对象。
O(object):object就是对象,相必大家对于这个都不陌生,而DOM则把HTML页面中的所有元素都解析为一个对象。
M(model):M代表的就是model(模块),主要表现的是dom里面各个对象之间的关系。
HTML中的DOM树:
节点
根据 DOM,HTML 文档中的每个成分都是一个节点。(一棵节点树中的所有节点彼此都是有关系的。)
DOM 是这样规定的:
- 整个文档是一个文档节点
- 每个 HTML 标签是一个元素节点
- 包含在 HTML 元素中的文本是文本节点
- 每一个 HTML 属性是一个属性节点
- 注释属于注释节点
<html>
<head>
<title>DOM Tutorial</title>
</head>
<body>
<h1>DOM Lesson one</h1>
<p>Hello world!</p>
</body>
</html>
每个节点都有父节点。举例,<head> 和 <body> 的父节点是 <html> 节点,文本节点 "Hello world!" 的父节点是 <p> 节点。
大部分元素节点都有子节点。比方说,<head> 节点有一个子节点:<title> 节点。<title> 节点也有一个子节点:文本节点 "DOM Tutorial"。
当节点分享同一个父节点时,它们就是同辈(同级节点)。比方说,<h1> 和 <p>是同辈,因为它们的父节点均是 <body> 节点。
节点也可以拥有后代,后代指某个节点的所有子节点,或者这些子节点的子节点,以此类推。比方说,所有的文本节点都是 <html>节点的后代,而第一个文本节点是 <head> 节点的后代。
节点也可以拥有先辈。先辈是某个节点的父节点,或者父节点的父节点,以此类推。比方说,所有的文本节点都可把 <html> 节点作为先辈节点。
节点访问
通过 DOM,您可访问 HTML 文档中的每个节点。
- 通过使用 getElementById() 和 getElementsByTagName() 方法
- 通过使用一个元素节点的 parentNode、firstChild 以及 lastChild 属性
getElementById() 和 getElementsByTagName() 方法的区别:
getElementById()
作用:根据指定的ID值获取对象,如果无符合条件的对象,则返回 null
用法:var 变量名= document . getElementsById( 'id名')
getElementByName()
作用:返回带有指定名称的对象的集合
用法:var 变量名= document . getElementsByName( 'name名')
区别:1)getElementById()取单个元素
2) getElementByName()取元素集合