HTML DOM 学习前端必须要了解的架构DOM简单,好学,全面

Posted IT_Holmes

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTML DOM 学习前端必须要了解的架构DOM简单,好学,全面相关的知识,希望对你有一定的参考价值。

学习html dom之前,要具备HTMLCSSJavascript 的知识储备。

1.解释DOM,HTML DOM和XML DOM

1.什么是DOM?

这里的DOM,全称是Document Object Model(文档对象模型)的缩写。
DOM是W3C(万维网联盟)的标准。
DOM定义了访问HTML和XML文档的标准。

2.什么是XML DOM?

XML DOM 定义了所有 XML 元素的对象和属性,以及访问它们的方法。

3.什么是HTML DOM?

HTML DOM 是:

  • HTML 的标准对象模型
  • HTML 的标准编程接口
  • W3C 标准

HTML DOM 定义了所有 HTML 元素的对象和属性,以及访问它们的方法。

换言之,HTML DOM 是关于如何获取、修改、添加或删除 HTML 元素的标准。

2.HTML DOM 节点

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

这里的节点,很好理解,整个HTML文档就是一个文档节点,往后,还有元素节点,文本节点,属性节点,注释节点等等。

将上面这些节点,按照父子同胞祖先来分类,可以得到一个HTML DOM 节点树。
HTML DOM Tree 树的图片如下:
在这里插入图片描述

下图解释以下,节点与节点之间的指针问题,更好理解是怎么运行的:

在这里插入图片描述

3.HTML DOM方法

方法是我们可以在节点(HTML元素)上执行的动作。
以下是常用方法:必须记住功能!!!

在这里插入图片描述

4.HTML DOM 属性

执行时,一般格式如下:

对象.方法.属性();

1.innerHTML属性

获取元素内容,替换html元素的最简单方法是使用 innerHTML 属性。

2.nodeName 属性

获取或规定节点名称
节点:有文本节点,元素节点,文档节点,属性节点。

3.nodeValue 属性

获得或规定节点的值。
元素节点的值是:undefined或null。
文本节点值:文本本身。
属性节点值:是属性的属性值。

4.nodeType 属性

在这里插入图片描述

4.HTML DOM 访问

三个方法:

getElementByID()方法
getElementsByTagName()方法
getElementsByClassName()方法

5.HTML DOM 元素

1.appendChild()方法 插入结尾元素

appendChild() 方法,将新元素作为父元素的最后一个子元素进行添加
就是添加元素,直接上例子:

<div id="div1">
<p id="p1">This is a paragraph.</p>
<p id="p2">This is another paragraph.</p>
</div>

<script>
var para=document.createElement("p");
var node=document.createTextNode("This is new.");
para.appendChild(node);

var element=document.getElementById("div1");
element.appendChild(para);
</script>

2.insertBefore()方法 插入开头元素

和appendChild()方法相反,元素放在开头。

3.removeChild()方法 删除元素

如需删除 HTML 元素,您必须清楚该元素的父元素,也就是先找到父元素,然后通过父元素使用removeChild()方法,来删除元素。

4.replaceChild()方法 替换元素

和removeChild()方法一样,先确定父元素,然后替换。

6.HTML DOM 事件

这里介绍几个事件。

1.onclick事件

一般事件执行方式有两种。

1.第一种方式 直接调用

接调用事件。
例如:

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title></title>
</head>
<body>
	<div onclick="this.innerHTML='hello!!!!!!'">点击我</div>
</body>
</html>

2.第二种执行方式 调用函数

调用函数的方式。
例如:

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title></title>
	<script type="text/javascript">
		function change(c){
			c.innerHTML="hello!!!!!"
		}
	</script>
</head>
<body>
	<div onclick="change(this)">点击我</div>
</body>
</html>

2.onload 和 onunload 事件

当用户进入或离开页面时,会触发 onload 和 onunload 事件。

3.onchange 事件

常用于输入字段的验证。
修改下面的input内容字母,为大写。
例如:

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title></title>
	<script type="text/javascript">
		function myfunction(){
			var d = document.getElementById("n");
			d.value = d.value.toUpperCase();
		}
	</script>
</head>
<body>
	输入英文自动转换为大写:<input type="text" id="n" onchange="myfunction()">
</body>
</html>

4.onmouseover和onmouseout事件

onmouseover 和 onmouseout 事件可用于在鼠标指针移动到或离开元素时触发函数。

5.onmousedown和onmouseup事件

onmousedown、onmouseup 以及 onclick 事件是鼠标点击的全部过程。首先当某个鼠标按钮被点击时,触发 onmousedown 事件,然后,当鼠标按钮被松开时,会触发 onmouseup 事件,最后,当鼠标点击完成时,触发 onclick 事件。

7.HTML DOM 导航

这里导航就是节点数组。
例如元素之间的数组:

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title></title>
</head>
<body>
	<p>Hello World!</p>
	<p>DOM 很有用!</p>

	<script>
	x=document.getElementsByTagName("p");
	document.write("第二段的 innerHTML 是: " + x[1].innerHTML);
	</script>
</body>
</html>

使用 length 属性来循环节点列表
例如:

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title></title>
</head>
<body>
	<p>Hello World!</p>
	<p>DOM 很有用!</p>

	<script>
	x=document.getElementsByTagName("p");
	for (i=0;i<x.length;i++){
		document.write(x[i].innerHTML);
		document.write("<br/>");
	}
	</script>
</body>
</html>

此外还可以使用firstChildChild,parentNode,childNodes等等方法来指定导航。
其中,使用 childNodes 和 nodeValue 属性来获取元素的内容。

以上是关于HTML DOM 学习前端必须要了解的架构DOM简单,好学,全面的主要内容,如果未能解决你的问题,请参考以下文章

JS的事件流的概念(重点)

JS的事件流的概念(重点)

09-JS的事件流的概念(重点)

35道必须要清楚地react面试题

前端基础之BOM和DOM:

JavaScript DOM编程艺术第二版学习(1/4)