Javascript中的DOM对象

Javascript中的DOM对象

DOM及其作用

(1)文档对象模型DOM(Document Object Model),根据W3C DOM规范,DOM是HTML与XML的应用编程接口(API),DOM将整个页面映射为一个由层次节点组成的文件
(2)它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式 。
(3)DOM把网页和脚本以及其他的编程语言联系了起来

以下内容均是针对HTML DOM

HTML DOM(针对HTML的标准规范)

(1)HTML 文档对象模型(HTML Document Object Model)定义了访问和处理 HTML 文档的标准方法
(2)脚本开发人员可以通过文档对象的属性、方法和事件来掌控、操纵和创建动态的网页元素每一个网页元素(一个HTML标签)都对应着一个对象
(3)网页上的标签是一层嵌套的,最外面的一层是,文档对象模型也这样一层嵌套着,但是通常被理解成一棵树的形状。树根是window或document对象,相当于最外层的标签的外围,也就是整个文档。树根之下是子一级的对象,子对象也有它自己的子对象,除了根对象以外,所有的对象都有自己的父对象,同一对象的子对象之间就是兄弟的关系。(和数据结构中的 树 是一个意思,没学过也不要紧看下图)
(4)节点彼此都有等级关系
(5)HTML 文档中的所有节点组成了一个文档树(或节点树)。HTML 文档中的每个元
素、属性、文本等都代表着树中的一个节点。树起始于文档节点,并由此继续伸出
枝条,直到处于这棵树最低级别的所有文本节点为止。
(6)下面这个图片表示一个文档树(节点树):
在这里插入图片描述

HTML DOM中节点的分类

(1)根据DOM的规定,HTML文档中的每个成分都是一个节点。

  • 整个文档是一个文档节点
  • 每个HTML标签是一个元素节点
  • 包含在HTML元素中的文本是文本节点
  • 每个HTML属性是一个属性节点
  • 注释是注释节点

(2)通过DOM,可以访问HTML文档中的每个节点

DOM的属性与方法

Javascript DOM的属性:

  • childNodes:获取作为指定对象直接后代的 HTML 元素和 TextNode对象的集合
  • children:获取作为对象直接后代的 DHTML 对象的集合
  • firstChild : 返回第一个子节点
  • lastChild : 返回最后一个子节点
  • parentNode : 返回一个给定节点的父节点
  • nextSiblng :获取该节点的下一个同级节点对象
  • previousSiblng :获取该节点的上一个同级节点对象
  • Atributes : 获取对象标签属性的集合
  • Elements :获取表单对象的下所有表单元素
  • ALL :所有的HTML元素节点[直接与间接节点]

Javscript DOM的方法(这里举出几个常用方法,更多的方法请自行百度)

  • createElement(elment) :创建一个指定标签名创建一个新的元素节点,返回值为指向新建元素节点的引用指针
  • createTextNode(string) :创建一个包含着给定文本的新文本节点,返回一个指向新建文本节点的引用指针:
  • appendChild(node) :插入节点
  • removeChild(node) :将从一个给定元素利删除一个子节点,返回一个指向已被删除的子节点的引用指针。
  • hasChildNodes:用来检查一个给定元素是否有子节点 ,返回bolean值
  • replaceChild(newnode,oldnode):节点替换
  • setAribute(key,value):为给定元素节点添加一个新的属性值或是改变它的现有属性
  • getAribute(key):返回一个给定元素的一个给定属性节点的值
  • getElementById():寻找一个有着给定id属性值的元素,返回一个元素节点
  • getElementsByTagName():用于寻找有着给定标签名的所有元素

实例演示:(这里我将<head></head><body></body>分开)

实现效果:

在这里插入图片描述

实现代码:
<head>
	<meta charset="UTF-8">
	<title></title>
	<script>
		function test01(){
			// 表格 动态添加
			// 1、先获取父容器
			var table = document.getElementById("mytable");
			// 2、创建tr
			var tr = document.createElement("tr");
			// 3、创建td
			var td1 = document.createElement("td");
			var td2 = document.createElement("td");
			var td3 = document.createElement("td");
			var td4 = document.createElement("td");
			
			// 4、给td设置相应的值,因为没有属性所以不能使用setAttribute(),可以使用innerText innerHtml
			td1.innerHTML = "新增的值";
			td2.innerHTML = "新增的值";
			td3.innerHTML = "新增的值";
			td4.innerHTML = "<input type='button' value='删除'οnclick='deleteTr(this.parentNode.parentNode)' />";
			// parentNode表示父节点
			// 5、将td添加进它的父节点tr中
			tr.appendChild(td1);
			tr.appendChild(td2);
			tr.appendChild(td3);
			tr.appendChild(td4);
			// 6、将tr添加进它的父节点table
			table.appendChild(tr);
		}
		// 删除 删除的对象是tr,因此在方法中传一个tr的参数
		function deleteTr(tr){
			var table = document.getElementById("mytable");
			table.removeChild(tr);
		}
	</script>
</head>

这里HTML标签之间的树状关系如图所示:
在这里插入图片描述
具体用到方法包括:getElementById()createElement()appendChild()removeChild()

<body>
	<div id="d1">
		<input type="button" value="动态添加表格" onclick="test01()"/>
		<table id="mytable" border="1px">
			<tr>
				<td>第一列</td>
				<td>第二列</td>
				<td>第三列</td>
				<td>操作</td>
			</tr>
		</table>
	</div>	
</body>
</html>

通过HTMLDOM,可以更好的去操控和掌握网页的设计。这样方便容易理解DOM的作用:DOM把网页和脚本以及其他的编程语言联系了起来

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值