JS DOM简介及其节点

一、DOM简介

DOM(Document Object Model)即文档对象模型,针对 HTML 和 XML 文档的 API(应用程序接口)。DOM 描绘了一个层次化的节点树,允许开发人员添加、移除和修改页面的某一部分。
DOM是为了让开发人员通过js的方式操作HTML页面或者XML页面。

1.节点

加载 HTML 页面时,Web 浏览器生成一个树型结构,用来表示页面内部结构。DOM 将这种树型结构理解为由节点组成。

	例如: <html>和<body>是父子节点
	<head>和<body>是兄弟节点
2.节点种类

元素节点、文本节点、属性节点(nodeName、nodeType 和 nodeValue)
在这里插入图片描述

3.层次节点属性

元素节点、文本节点、属性节点(nodeName、nodeType 和 nodeValue)
在这里插入图片描述

二、DOM节点查找:

document是Document类型的一个对象.代表的是整个HTML页面.它其实也是window对象的一个属性.

1.根据ID查找

getElementById():接受一个参数:获取元素的 ID。如果找到相应的元素则返回该元素的 HTMLDivElement 对象,如果不存在,则返回 null。

2.根据标签名查找:

getElementsByTagName():返回一个对象数组 HTMLCollection(NodeList),这个数组保存着所有相同元素名的节点列表。

3.根据名称(name)查找

getElementsByName() :获取相同名称(name)的元素,返回一个对象数组
HTMLCollection(NodeList)。

三、节点操作

DOM 不单单可以查找节点,也可以创建节点、复制节点、插入节点、删除节点和替换节点。
在这里插入图片描述

1.创建节点:
	1. createElement()方法可以创建一个元素节点。
	示例:
	document.createElement(“p”);

	2. createTextNode()方法:创建一个文本节点	
	示例:
	var text = document.createTextNode('段落'); //创建一个文本节点
	p.appendChild(text); //将文本节点添加到子节点末尾
2.添加节点:
	1.appendChild()方法讲一个新节点添加到某个节点的子节点列表的末尾上。
	示例:
	var box = document.getElementById('box'); //获取某一个元素节点
	var p = document.createElement('p'); //创建一个新元素节点<p>
	box.appendChild(p); //把新元素节点<p>添加子节点末尾。
	2.insertBefore(newNode,oldNode)
3.复制节点:
	cloneNode(参数)可以把子节点复制出来。
	
	说明:参数为true表示复制内容,,false仅仅复制节点
4.删除节点:
	removeChild()可以删除指定的节点。
	
	例如:box.parentNode.removeChild(box); //删除指定节点	

四、节点属性操作

1.HTML属性与DOM节点属性对应关系:
	HTML属性    	 DOM节点属性
      id				id
      src				src
      title				title
      class				className
      for				htmlFor
2.属性访问:
	(1)node.属性名
	 	说明:可完成复制和取值
	
	(2)node[“属性名”]
	
	(3)node.setAttribute(“属性名”, ”属性值”);
	   node.getAttribute(“属性名”);

五.节点样式操作:

Js可以直接操作css属性

	例如:
	var o = document.getElementById("box");
	o.style.background = “red";

说明:

	1.若多个单词的css属性要将”-”去掉,将第二个单词首字母大写。
	2.在获取样式时,如果定义的是行内样式,js可以正常获取,而定义在外部样式表或内嵌样式表中的样式,js无法直接获取。
	解决方案:
	var sty = window.getComputedStyle(node);

注意:属性获取时不可以获取复合属性值。例如:sty.background获取不到
此时应该单独获取,如:sty.backgroundColor

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章