欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

HTML DOM入门1:DOM元素的常见方法及其属性

程序员文章站 2022-06-06 20:01:40
...
1.HTML DOM简介

DOM指Document Object Model ,文档对象模型,利用DOM可以将html的数据当作对象处理。它的优点是,方便程序和脚本动态地访问、更新文档的内容、结构和样式。

Document对象的继承结构:
1.共同父类是Root Element:<html>
2.子类包括头文件head ,另外还有body 等

DOM包括核心DOM、XML DOM 以及HTML DOM,顾名思义,HTML DOM针对的是HTML文档。

2.HTML DOM 元素(document)的组织形式:节点

HTML DOM把所有内容都看作树中的节点。比如,下面的代码中:
(1)<html>是root,拥有firstChild:<head>和lastChild: <body>
(2)<head>和<body>;<p1>和<p2>互为Sibling.
注意:由于p1和p2之间有一个空格。空格是一个文本。因此body的childNodes个数为三个而非两个。(除了空格之外,换行符、字符、字符串也有类似效果)(但Children个数似乎为2个,待进一步查询)
(3)“文本2”的父节点是<p2>

<html>
 <head> 
  <title>标题</title>
 </head>
 <body>
 <p1>文本1</p1> <p2>文本2</p2>
 </body>
</html>
3.节点方法
//document是类名,getElementId是方法,这个方法的作用是寻找特定id的html元素,将返回一个html元素。
var a = document.getElementById("id1");
//类似方法可以利用TagName ClassName寻找,将返回一个节点列表(ID在设计上是唯一的)
var divs = document.getElementsByTagName("div");//标签
var b = document.getElementsByClassName("class1");
var c = document.getElementsByName("input1");//表单通常设计为如<input name="input1">的模式

//其他常见方法包括:(见后续,先介绍节点属性)
4.节点属性
a.节点的属性节点attributes

一个元素(节点)可能有多个属性,如:id为id1,class为class1 align为right
那么,将这三个属性抽象出来当作元素看待,称作属性节点。
如ID属性:它的节点名为id,节点值为id1。有点类似于键值对的思想。
可以通过attributes关键字,可以得到一个元素的属性节点的列表。

var  div1 = document.getElementById("id1");//div1是一个元素
var as = div1.attributes;//as是这个元素的属性节点列表,是一个数组。
b.节点名nodeName
<div id="id1">文本内容</div>
var div1=document.getElementById("id1");

//如果是文本节点和文档节点,会返回#text和#document
var a = document.nodeName;//返回#document
//如果是元素节点或者属性节点,等于元素名或属性名
var b = div.nodeName;//返回元素节点的元素名:DIV
var c = div1.attributes[0].nodeName;//返回属性节点的属性名:id
c.节点值nodeValue、节点文本innerHTML

文本节点和属性节点具有节点值。可以初步把节点值理解为往该元素中填充的某种内容。

<div id="id1">文本内容</div>

//内容文本的nodeValue是文本内容
var txt = document.getElementById("id1").childNodes[0].nodeValue;//返回"文本内容"
//也可以用 innerHTML获取文本内容
var txt = document.getElementById("id1").innerHTML;//返回"文本内容"
//而属性节点的nodeValue是属性值
var txt =document.getElementById("id1").attributes[0].nodeName;//返回它的一个属性id的属性值:id1
//document和元素节点的属性值为null
d.节点类型nodeType

一个节点,可能是常见的元素型节点,也可能是文本节点,还有可能是抽象出来的属性节点。描述节点类型的变量称为nodeType.
常见节点的类型有:元素型1,属性节点2,文本节点3,注释8,文档9

<div id="id1">文本内容</div>
var type1 = document.getElementById("id1").nodeType;//由于是一个元素节点,所以会返回1
e.已知某种自定义属性名,获取元素对象的自定义属性值

采用element.attrtibutes[“属性名”]来获得相应的属性元素

//自定义一种属性 property1
<div id="id1" property1="red">文本内容</div>
var value =document.getElementById("id1").attributes["property1"].nodeValue;//返回字符串red
相关标签: 前端入门