JavaScriptDocument Object Model (DOM)文档对象模型元素节点属性

tech2024-09-26  21

一、DOM简介

DOM全称是文档对象模型。全称是Document Object Model,文档对象模型。Js中通过DOM来对HTML文档进行操作,把html\xml等文档的标签,属性,文本,转换成为对象来管理。

只要理解了DOM就可以随心所欲操作WEB页面。

文档:文档表示整个HTML网页文档,一个HTML网页就是一个文档

对象:表示将网页中的每一个部分都转换成一个对象。(网页中所有的一切都是对象)

模型:使用模型来表示对象之间的关系,方便我们获取对象

二、节点

2.1概述

节点Node,是构成HTML文档的最基本单元,网页中的每一个部分都可以称为一个节点。比如html标签、属性、文本、注释、整个文档等,都是一个节点。

注意:虽然都是节点,但实际上他们具体类型是不同的。比如标签我们称为元素节点,属性称为属性节点,文本称为文本节点,文档称为文档节点。节点的类型不同,属性和方法也不同

常用节点   就是四个对象

文档节点(Document对象):整个HTML文档

元素节点(Element对象):HTML文档中的HTML标签。(非常重要)

Element对象.属性名【=属性值】   //获取或修改此标签的某个属性。由于class是关键字,所以获取class属性的属性名为className

Element对象.innerHTML【=属性值】 //获取或修改此标签的文本内容。自结束标签没有文本内容

属性节点(对象):元素的属性

文本节点(对象):HTML标签中的文本内容

nodeValue:文本内容   

2.2节点的属性(每个节点都有的通用属性)

nodeName(节点名)

nodeValue  (节点值)   //文本节点常用这个属性,元素节点都是用innerHTML属性来获取值

nodeType(节点类型):Number (类型代码)

三、模型

Document代表整个文档。

<html lang="zn_ch"> <head>     <title>My title</title> </head> <body> <a href="http://www.baidu.com">My link</a>  <h1>My header</h1> </body> </html>

       以下为上面html代码都转换为dom对象后所对应的树形结构图。这个树形结构图由document对象进行管理和维护,Document让所有标签都对象化,我们可以通过Document对象访问所有的标签对象。

 

 

1、总述    (这些节点都是对象

整个文档是一个文档节点每个 HTML 元素是元素节点HTML 元素内的文本是文本节点  备注:文本也是节点TextNode,创建文本节点即 createTextNode("文本内容")每个 HTML 属性是属性节点注释是注释节点

2、由图可见:

<html> 节点没有父节点;它是根节点<head> 和 <body> 的父节点是 <html> 节点文本节点 "My header" 的父节点是 <h1> 节点

并且:

<html> 节点拥有两个子节点:<head> 和 <body><head> 节点拥有一个子节点:<title> 节点<title> 节点也拥有一个子节点:文本节点 "My title"<a> 和 <h1> 节点是同胞节点,同时也是 <body> 的子节点

并且:

<head> 元素是 <html> 元素的首个子节点<body> 元素是 <html> 元素的最后一个子节点<a> 元素是 <body> 元素的首个子节点<h1> 元素是 <body> 元素的最后一个子节点

2、节点的常用属性和方法 (用于比较复杂DOM结构的标签查询)

常用方法1:通过具体的元素节点调用 getElementsByTagName()方法,获取当前节点的指定标签名孩子节点。比如document.getElementsByTagName("input") 就是说获取document孩子节点 所有input标签

常用方法2:appendChild(oChildNode)   语法:document.(某元素).appendChild(oChildNode) 

某元素添加一个子节点,oChildNode是要添加的孩子节点名

常用属性: 通用语法, document.getElement(s)By(Id/Name/TagName).常用属性

childNodes属性:获取当前节点的所有子节点

firstChild属性:获取当前节点的第一个子节点

lastChild属性:获取当前节点的最后一个子节点

parentNode属性:获取当前节点的父节点

nextSibling属性:获取当前节点的下一个节点

previousSibling属性:获取当前节点的上一个节点

className用于获取或设置标签的class属性值。 为了防止和.class冲突,所以用className

innerHTML属性:表示获取/设置起始标签和结束标签中的内容

innerText属性:表示获取/设置起始标签和结束标签中的文本

Exp:获取id为 city 的所有子节点个数: (1)获取city (2)通过city获取所有子节点

document.getElementById("city").childNodes.length;

Exp:用JS代码创建html标签,并显示在html页面上,内容是<div>我忍不住了,我要射了</div>

window.οnlοad=function(){                  //这句表示在页面加载完成后,执行{}代码。如果没加载完成,显示不出来

var divObj=document.createElement("div"); //创建div标签,还没内容

divObj.innerHTML="我忍不住了,我要射了";   //给div标签添加内容

document.body.appendChild(divObj);   //给body添加子元素  div

最新回复(0)