JavaScript文档对象模型(DOM)

这篇博客详细介绍了DOM(文档对象模型),包括其核心部分和不同版本,如CoreDOM、XMLDOM和HTMLDOM。DOM允许通过JavaScript访问和操作HTML或XML文档的结构,例如通过getElementById、getElementsByTagName和getElementsByClassName等方法获取元素。文中通过实例展示了如何改变元素内容、删除和添加节点,并探讨了节点的相关属性。此外,还讨论了DOM在页面交互中的应用,如事件绑定和CSS样式修改。最后,文章演示了如何创建、删除和更新节点,强调了DOM在网页动态更新中的作用。

文档对象模型(Document Object Model)

一、文档对象模型的概述

文档对象模型(DOM)是针对HTML和XML文档的一个API(应用程序编程接口)。一般来讲,所有支持JavaScript的浏览器都支持DOM。它以树形结构表示HTML和XML文档定义了遍历树、检查和修改树的节点的方法和属性。
W3C组织把DOM分成下面的不同的部分和三个不同的版本(DOM1/2/3)。
(1)Core DOM:定义了任意结构文档的标准对象集合。
(2)XML DOM:定义了针对XML文档的标准对象集合。
(3) HTML DOM:定义了针对HTML文档的标准对象集合。
(4)DOM CSS:定义了在程序中操作CSS规则的接口。
(5) DOM Events:给DOM添加事件处理。

二、HTML DOM 树状结构图

在DOM中,这样规定节点,整个文档是一个文档节点,每个HTML文档的标签是一个元素节点,包含在HTML元素中的文本是文本节点,每一个HTML 属性是一个属性节点,注释属于注释节点。

三、使用DOM访问文档对象的元素

(1)通过使用getElementByld()方法、getElementsByTagNameO方法和getElementsByName方法。

(2)通过使用一个元素节点的parentNode、firstChild及lastChild属性。

getElementByld()和getElementsByTagName()两种方法,可查找整个HTML文档中的任何HTML元素。

getElementsByName()方法可返回带有指定名称的对象的集合。

getElementByld)可通过指定的ID来返回元素,使用document.getElementByld(”元素的ID")就可以得到该元素。

 

	<input type="button" name="" id="btn" value="单击" />
		<div id="aa">
			库洛米
		</div>
		<div id="bb">
			美乐蒂
		</div>
		<ul>
			<li>列表1</li>
			<li>列表2</li>
			<li>列表3</li>
			<li>列表4</li>
		</ul>
		<span id="zz">
			这是一个span标签
		</span>
		<input type="text" name="names" id="" value="" />
		<p class="one"></p>
		<script type="text/javascript">
			document.getElementById("btn").onclick = function(){
				//通过标签的id属性来获取元素
				var div1 = document.getElementById("aa");
				div1.innerHTML = "玉桂狗";
				var div2 = document.getElementById("bb");
				div2.innerHTML = "玉桂狗";
				
				//通过标签名来获取标签
				var div2 = document.getElementsByTagName("div");
				console.log("div2");
				for (var i = 0; i < div2.length;i++) {
					console.log(div2[i]);
					div2[i].innerHTML = "布丁狗";
					
					var ul = document.getElementsByTagName("ul")[0]
					console.log(ul);
					
					//获取所有属性class的值使one的标签
					var cla = document.getElementsByClassName("one");
					console.log("cla");
					
					//通过name属性来获取标签
					var names = document.getElementsByName("names");
					console.log("names[0]");
					
					//通过选择器名称来获取,只能获取一个
					var queryS = document.querySelector(".one");
					console.log(query);
					
					//通过对应的选择器获取所有满足条件的标签
					var queryA = document.querySelectorAll(".one");
					console.log("queryA");
					
					//通过标签中的id属性的值获取标签
					console.log(div1);
					
					console.log(document.body);
				}
				
			}
		</script>

四、DOM可以干什么?


(1)获取一个元素
 (2)移除一个元素 
(3)创建一个元素
(4)向页面里面添加一个元素
(5)给元素绑定一些事件
 (6)获取元素的属性 
(7)给元素添加一些css样式
DOM的核心对象就是document对象
document对象是浏览器内置对象的一个对象,里面存储着专门用来操作元素的各种方法

<input type="button" name="" id="add" value="添加节点" onclick="add()" />&nbsp;
		<input type="button" name="" id="delete" value="删除节点" onclick="del()" />&nbsp;
		<input type="button" name="" id="update" value="修改节点" onclick="update()" />
		
		<ul>
			<li>1</li>
			<li>2</li>
			<li>3</li>
			<li>4</li>
			<li>5</li>
		</ul>
		<script type="text/javascript">
			var ul = document.querySelector("ul");
			// 添加一个新的li标签
			function add(){
				//创建一个节点
				var li = document.createElement("li");
				li.innerHTML = "新添加的节点";
				//appendChild() :向一个标签中添加子标签(子元素)
				ul.appendChild(li);
			}

			function del(){
				//删除第一个子元素
				//document.firstElementChild
				var li = document.querySelectorAll("li")[0];
				
				ul.removeChild(li);//删除的使标签中的指定的子元素
				ul.remove();//将所有的子元素清空,包括元素本身
			}

			function update(){
				
				var li = document.querySelectorAll("li")[2];
				li.innerHTML = "修改后的";
				
			}
		</script>

五、节点

每个节点都拥有包含着关于节点某些信息的属性。这些属性是:
nodeName(节点名称)
所包含的元素的标签名称永远是大写的
元素节点的nodeName是标签名称
属性节点的nodeName是属性名称
文本节点的nodeName永远是#text
文档节点的nodeName永远是#document

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃汉堡的代码人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值