首页 > 编程语言 >E006Web学习笔记-JavaScript(四):DOM

E006Web学习笔记-JavaScript(四):DOM

时间:2023-02-22 15:32:16浏览次数:57  
标签:DOM JavaScript getElementById var td document 节点 E006Web

一、概述

1、简介

Document Object Model文档对象模型;

将标记语言文档的各个部分,封装为对象,可以使用这些对象,对标记语言文档进行CRUD(增删改查)的动态操作;

 

2、标准

W3C DOM标准被分为3个不同的部分:

核心DOM——针对任何结构化文档的标准模型;

Document文档对象;

Element元素对象;

Attribute属性对象;

Text文本对象;

Comment注释对象;

Node节点对象,是其他5个的父对象;

XML DOM——针对XML文档的标准模型;

HTML DOM——针对HTML文档的标准模型;

我们需要学习的内容 = 核心DOM + HTML DOM;

 

二、Document文档对象

1、创建/获取

在html dom中,可以使用window对象获取;

window.document;
或者document;

 

2、方法

(1)获取Element对象;

document.getElementById()返回对拥有指定 id 的第一个对象的引用;
document.getElementsByName()返回带有指定名称的对象集合;
document.getElementsByTagName()返回带有指定标签名的对象集合;
document. getElementsByClassName()返回文档中所有指定类名的元素集合,作为 NodeList 对象。

(2)创建其他的DOM对象;

document.createAttribute()创建一个属性节点
document.createComment()创建注释节点;
document.createDocumentFragment()创建空的 DocumentFragment 对象,并返回此对象;
document.createElement()创建元素节点;
document.createTextNode()创建文本节点;

 

三、Element对象

1、创建/获取

通过document对象;

 

2、方法

element.setAttribute()设置或者改变指定属性并指定值;
element.removeAttribute()从元素中删除指定的属性;

代码演示:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>DOM演示</title>
	</head>
	<body>
		<a>请为我设置或移除链接</a>
		<input id="btn1" type="button" value="设置链接" />
		<input id="btn2" type="button" value="移除链接" />
	</body>
	<script type="text/javascript">
		var a = document.getElementsByTagName("a")[0];
		var btn1 = document.getElementById("btn1");
		btn1.onclick = function(){
			a.setAttribute("href","http://www.baidu.com/");
		}
		var btn2 = document.getElementById("btn2");
		btn2.onclick = function(){
			a.removeAttribute("href");
		}
	</script>
</html>

 

四、Node对象,其他5个对象的父对象

1、特点

所有DOM对象都可以被认为是一个节点;

 

2、方法

CRUD DOM树:

appendChild():向节点的子节点列表的结尾添加新的子节点;
removeChild():删除(并返回)当前节点的指定子节点;
replaceChild():用新节点替换子节点;

代码演示:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>DOM演示</title>
		<style type="text/css">
			#div3{
				width: 50px;
				height: 50px;
				background-color: #008000;
			}
			#div4{
				width: 70px;
				height: 70px;
				background-color: blue;
			}
		</style>
	</head>
	<body>
		<div id="div1" style="width: 200px;height: 200px;background-color: #FF0000;">
			div1
			<div id="div2"style="width: 100px;height: 100px;background-color: #00FFFF;">
				div2
			</div>
		</div>
		<a>a标签说明</a>
		<input id="btn1" type="button" value="添加" />
		<input id="btn2" type="button" value="删除" />
	</body>
	<script type="text/javascript">
		var div1 = document.getElementById("div1");
		var div2 = document.getElementById("div2");
		var a = document.getElementsByTagName("a")[0];
		var btn1 = document.getElementById("btn1");
		btn1.onclick = function(){
			//创建子节点
			var div3 = document.createElement("div");
			div3.setAttribute("id","div3");
			div3.innerHTML = "div3";
			div1.appendChild(div3);
		}
		var btn2 = document.getElementById("btn2");
		btn2.onclick = function(){
			//删除子节点
			div1.removeChild(div2);
		}
	</script>
</html>

 

3、属性

parentNode返回节点的父节点。

 

4、动态添加删除表格数据案例代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>table</title>
		<style type="text/css">
			
		</style>
	</head>
	<body>
		<div id="div_input">
			<input type="text" id="num" value="请输入序号"/>
			<input type="text" id="name" value="请输入名字"/>
			<input type="text" id="sex" value="请输入性别"/>
			<input type="button" id="btn" value="添加数据"/>
			
		</div>
		<table id="tb" border="1" style="width: 600px;">
			<tr>
				<th>序号</th>
				<th>名字</th>
				<th>性别</th>
				<th>操作</th>
			</tr>
			<tr>
				<td>1</td>
				<td>大哥</td>
				<td>男</td>
				<td><a href="javascript:void(0);" onclick="del(this);">删除</a></td>
			</tr>
			<tr>
				<td>2</td>
				<td>二哥</td>
				<td>男</td>
				<td><a href="javascript:void(0);" onclick="del(this);">删除</a></td>
			</tr>
			<tr>
				<td>3</td>
				<td>三哥</td>
				<td>男</td>
				<td><a href="javascript:void(0);" onclick="del(this);">删除</a></td>
			</tr>
		</table>
		
	</body>
	<script type="text/javascript">
		//添加功能
		document.getElementById("btn").onclick = function(){
			var num = document.getElementById("num").value;
			var name = document.getElementById("name").value;
			var sex = document.getElementById("sex").value;
			var tr = document.createElement("tr");
			var td_num = document.createElement("td");
			var text_num = document.createTextNode(num);
			td_num.appendChild(text_num);
			var td_name = document.createElement("td");
			var text_name = document.createTextNode(name);
			td_name.appendChild(text_name);
			var td_sex = document.createElement("td");
			var text_sex = document.createTextNode(sex);
			td_sex.appendChild(text_sex);
			var td_del = document.createElement("td");
			var td_del_a = document.createElement("a");
			td_del_a.setAttribute("href","javascript:void(0);");
			td_del_a.setAttribute("onclick","del(this);");
			var td_del_a_text = document.createTextNode("删除");
			td_del_a.appendChild(td_del_a_text);
			td_del.appendChild(td_del_a);
			tr.appendChild(td_num);
			tr.appendChild(td_name);
			tr.appendChild(td_sex);
			tr.appendChild(td_del);
			var table = document.getElementById("tb");
			table.appendChild(tr);
		}
		//删除功能
		function del(obj){
			var table = obj.parentNode.parentNode.parentNode;
			var tr = obj.parentNode.parentNode;
			table.removeChild(tr);
		}
	</script>
</html>

结果截图:

E006Web学习笔记-JavaScript(四):DOM_html

 

五、HTML DOM

1、innerHTML

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>innerHTML</title>
	</head>
	<body>
		<div id="dv1">
			哈哈!
		</div>
		<script type="text/javascript">
			var div = document.getElementById("dv1");
			//替换为文字
			div.innerHTML = "呵呵!";
			//替换为标签
			div.innerHTML = "<a href='http://www.baidu.com'>百度一下</a>";
			//追加标签
			div.innerHTML += "<a href='http://www.baidu.com'>百度一下</a>";
		</script>
	</body>
</html>

 

2、控制元素样式

方法一:使用元素的style属性来设置;

方法二:使用提前定义好的样式,通过className属性来设置其class属性;

代码演示:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>innerHTML</title>
		<style type="text/css">
			.d1{
				width: 300px;
				height: 300px;
				background-color: #00FFFF;
			}
		</style>
	</head>
	<body>
		<div id="dv1">
			哈哈!
		</div>
		<script type="text/javascript">
			var div = document.getElementById("dv1");
			div.onclick = function(){
				//第一种方式
				div.style.background = "fuchsia";
				//font-size --> fontSize
				div.style.fontSize = "30px";
				//第二种方式
				div.className = "d1";
			}
		</script>
	</body>
</html>

E006Web学习笔记-JavaScript(四):DOM_javascript_02

 

 

 

标签:DOM,JavaScript,getElementById,var,td,document,节点,E006Web
From: https://blog.51cto.com/u_13272819/6079073

相关文章

  • E007Web学习笔记-JavaScript(五):JS事件
    一、概述1、事件概念某些组件被执行了某些操作后,触发某些代码的执行;事件:某些操作,如点击,双击,鼠标移动,键盘按下……; 2、事件源组件,如按钮、文......
  • E004Web学习笔记-JavaScript(二):JS对象
    一、Function1、概述是一个函数对象; 2、Function:函数(方法)对象①创建//1、方法1(不建议使用)varfun=newFunction(形参列表,方法体);示......
  • Javascript基础入门
    Javascript基础入门​ JavaScript,是一门能够运行在浏览器上的脚本语言.简称JS.首先,Javascript这个名字的由来就很有意思,不少人认为Javascript和Java貌似很像.容......
  • 深入解析 JavaScript 中 ES6 的 Generator 生成器
    前言大家好,我是CoderBin,本次将深入解析JavaScript中ES6的Generator生成器,希望对大家有所帮助,谢谢。如果文中有不对、疑惑的地方,欢迎在评论区留言指正......
  • 【JavaScript】23_instanceof和hasOwn
    13、instanceof和hasOwninstanceof用来检查一个对象是否是一个类的实例instanceof检查的是对象的原型链上是否有该类实例只要原型链上有该类实例,就会返回truedog->......
  • 【JavaScript】24_旧类与new运算符
    14、旧类早期JS中,直接通过函数来定义类一个函数如果直接调用xxx()那么这个函数就是一个普通函数一个函数如果通过new调用newxxx()那么这个函数就是一个够早函数​......
  • js操作shadow-root内的DOM元素
    其实就是documentfragment元素,就是动态生成的文档碎片元素。1,项目中在DOM结构里遇到了shadow-root(open),用JS方法无法直接获取其内的DOM元素2、shadow DOMWebcompon......
  • cpp generate template random number
    #include<iostream>#include<random>template<typenameT>Tgen_random(Tmin,Tmax){std::random_devicerd;std::mt19937_64mt(rd()......
  • JavaScript 数组遍历的五种方法(转)
    转自:JavaScript数组遍历的五种方法这篇文章主要介绍了JavaScript数组遍历的五种方法,帮助大家更好的理解和学习使用JavaScript,感兴趣的朋友可以了解下在使用JavaScri......
  • 在PHP和JavaScript中设置Cookie、会话存储(SessionStorage)和本地存储(LocalStorage)
    A.Cookie介绍Cookie:Cookie常用于识别用户,它是服务器留在用户计算机中的小文件(大小限制在4KB),每当相同的计算机通过浏览器请求页面时,它会同时发送Cookie,即Cookie是随HTTP......