JavaScript-DOM(文档对象模型)-1

DOM(文档对象模型)

1.初步认识DOM

在这里插入图片描述

这个html文档结构树被称为DOM(文档对象模型)。DOM定义了访问HTML文档的标准。关于DOM,需要了解以下几点

1)DOM是Document Object Model的缩写。

2)DOM是一组用来描述脚本怎么与结构化文档进行交互和访问的web标准。

3)DOM定义了一系列对象、方法和属性,可以通过JavaScript访问、操作和创建文档中的内容、结构、样式以及行为。

4)DOM可以说就是为了获得对象而存在的。

	文档节点树中的节点彼此也拥有层级关系。
	我们用父(parent)、子(child)和同胞(sibling)等术语用于描述这些关系。
	父节点拥有子节点。同级的子节点被称为同胞,它们的关系如下:

1)<html>元素没有父节点,它是根节点

2)<head><body>的父节点是<html>节点,<head><body>是同胞节点

3)文档节点“张三”的父节点是<strong>节点

4)<head>元素是 <html>元素的首个子节点

5)<body>元素是<html>元素的最后一个子节点

<!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>试一试</title>
        <script type="text/javascript">
    		window.onload=function(){
    		var  oP=document.getElementById("intro");
    		//获取ID标签和他绑定,返回的是[object HTMLParagraphElement]
              console.log("p标签的内容为:"+oP.innerHTML);//获取ID里面的内容
    		};
    	</script>
    </head>
    <body>
        <p id="intro">hello dom</p><!-- 为元素定义唯一标识 --> 	
    </body>
</html>

当网页读取到js代码时,所有构建及下载暂停,需要将js代码全部加载完成后才能继续构建网页。
window.onload方法会在DOM节点树加载完成后触发,此时DOM文档树加载完成,可以通过js代码随意操作。
在这里插入图片描述
在这里插入图片描述

2.属性节点

在这里插入图片描述
在这里插入图片描述

<!DOCTYPE html>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>节点属性获取</title>
	</head>
	<body>
		<p id="intro"name="myName"value="1XXXXXXXXXXXX">
			Hello Dom!
		</p>
		<script>
			function getProperty(flag) {
				_flag = "<br>nodeName:" + flag.nodeName + "<br>nodeType:" + flag.nodeType + "<br>nodeValue:" + flag.nodeValue;
				return _flag;
			}
			element = document.getElementById("intro");
			//获取元素节点p
			document.write("<p>元素节点p的节点属性:" + getProperty(element) + "</p>");
          
          
          
			attribute = document.getElementById("intro").getAttributeNode("name");
			//获取元素节点p的name属性
			document.write("<p>属性节点name的节点属性:" + getProperty(attribute) + "</p>");
		
          
          text = document.getElementById("intro").firstChild;
			//获取元素节点的子节点
			document.write("<p>文本节点的节点属性:" + getProperty(text) + "</p>");
		</script>
	</body>
</html>

在这里插入图片描述

3.节点操作

1.节点的添加

在这里插入图片描述

<!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>试一试</title>
        <script type="text/javascript">
        	function addNode(){
    		var oH=document.createElement("h4");	//新建一个节点h4
    			oH.innerHTML="Dom节点";//给新建的节点写入文字
   var oB=document.getElementById("intro");	//获取需要添加节点的位置
    		oB.insertBefore(oH,oB.firstChild);	//把新建节点插入到body第一个子节点之前的位置
         	    	};
    	</script>
    </head>
    <body id="intro">
        <p>hello dom</p>
        <hr />
        <input type="button" value="增加节点" onclick="addNode();" />
    </body>
</html>

语法: .createElement(name)
参数: name:字符串值,这个字符串可为此元素节点规定名
称。
2)
语法: .insertBefore(newnode,existingnode)
参数: newnode:需要插入的节点对象。
existingnode:在之前插入新节点的子节点

2.节点的删除

关于节点的删除非常简单,调用removeChild0方法, 就可以删
除所选择的节点。

<!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>试一试</title>
        <script type="text/javascript">
        	function delNode(){
        	var oB=document.getElementById("intro");	//获取body标签
    			oB.removeChild(oB.firstChild);//删除body标签的第一个子节点
        	};	
    	</script>
    </head>
    <body id="intro"><h4>Dom节点</h4>
        <p>hello dom</p>
        <hr />
        <input type="button" value="删除节点" onclick="delNode();" />
    </body>
</html>

语法: .removeChild(node)
参数:1
node:被删除的节点

3.节点的修改

节点的修改并不是直接将节点修改为另一个节点,而是先创建一
个新节点,然后用新节点替换需要修改的节点。

<!DOCTYPE HTML>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>试一试</title>
		<script type="text/javascript">
			function repNode() {
				var oB = document.getElementById("intro");
				var oH=document.createElement("h1");//新建一个节点h1
			oH.innerHTML="Dom节点";	//给新建节点添加内容
				oB.replaceChild(oH,oB.firstChild);//用新节点替换h4节点
			}
		</script>
	</head>
	<body id="intro"><h4>Dom节点</h4>
		<p>hello dom</p>
		<hr />
		<input type="button" value="替换节点" onclick="repNode();" />
	</body>
</html>

语法: .replaceChild(newnode,oldnode)
参数: newnode:希望插入的节点对象
oldnode:希望删除的节点对象
在这里插入图片描述

4.简单的事件

<!DOCTYPE html>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>事件的触发</title>
		<script type="text/javascript">
			function on_Click() {
				alert("你点击了按钮,通过onclick方法触发了click事件");
			}

			function on_Dblclick() {
				alert("你双击了按钮,通过ondblclick方法触发了dblclick事件");
			}

			function on_Mousedown() {
				alert("你按下了按钮,通过onmousedown方法触发了mousedown事件");
			}

			function on_Mouseup() {
				alert("你按下鼠标并松开了,通过onmouseup方法触发了mouseup事件");
			}

			function on_Mouseover() {
				alert("鼠标移动到了按钮,通过onmouseover方法触发了mouseover事件");
			}

			function on_Mouseout() {
				alert("鼠标移出了按钮,通过onmouseout方法触发了mouseout事件");
			}

			function on_Keypress() {
				alert("你按下按键了,通过onkeypress方法触发了keypress事件");
			}
		</script>
	</head>
	<body onkeypress="on_Keypress();">
		<input type="button"value="单击鼠标触发事件"onclick="on_Click();"/>
		<br />
		<br />
		<input type="button"value="双击鼠标触发事件"ondblclick="on_Dblclick();"/>
		<br />
		<br />
		<input type="button"value="按下鼠标触发事件"onmousedown="on_Mousedown();"/>
		<br />
		<br />
		<input type="button"value="按下鼠标松开时触发事件"onmouseup="on_Mouseup();"/>
		<br />
		<br />
		<input type="button"
		value="移动鼠标到按钮触发事件"onmouseover="on_Mouseover();"/>
		<br />
		<br />
		<input type="button"value="移开鼠标触发事件"onmouseout="on_Mouseout();"/>
		<br />
		<br />
		<input type="button"value="按下键盘按键触发事件"/>
	</body>
</html>

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

代码浪人

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

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

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

打赏作者

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

抵扣说明:

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

余额充值