这两天学习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树:

                      

docomesh_HTML

节点

根据 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名')

docomesh_html_02

docomesh_docomesh_03


        getElementByName()

作用:返回带有指定名称的对象的集合

用法:var 变量名= document . getElementsByName( 'name名')

docomesh_html_04

区别:1)getElementById()取单个元素

           2)  getElementByName()取元素集合