JS DOM

第六章 DOM文档对象模型

第一节 DOM概念

DOM: 文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口。在网页上,组织页面(或文档)的对象被组织在一个树形结构中,用来表示文档中对象的标准模型就称为DOM。Document Object Model的历史可以追溯至1990年代后期微软与Netscape的“浏览器大战”,双方为了在JavaScript与JScript一决生死,于是大规模的赋予浏览器强大的功能。微软在网页技术上加入了不少专属事物,既有VBScript、ActiveX、以及微软自家的DHTML格式等,使不少网页使用非微软平台及浏览器无法正常显示。DOM即是当时蕴酿出来的杰作。

DOM编程: 使用js访问DOM对象中的节点,进行节点的创建,删除,修改操作。

DOM树中的节点彼此拥有的层级关系类似树。

在DOM中,有如下的关系:

父节点(parent),子节点(child),兄弟节点(sibling)

  • html是整个树的根节点,没有父节点

  • 除根节点外,每一个节点都有父节点

  • 一个节点可以有多个子节点

  • 同一个父节点的节点互为兄弟节点

第二节 常用的DOM方法和属性

方法说明
getElementById根据id获取元素
getElementsByTagName根据标签名获取元素数组
getElememtsByClassName根据类样式名获取元素数组
getElementsByName根据元素的name属性查找元素数组
createElement创建元素节点
appendChild在当前元素上添加子节点
removeChild从当前元素中移除子节点
querySelectorAll根据(类)id选择器选择元素数组
属性说明
parentNode当前元素的父节点
childNodes当前元素的子节点数组
firstChild当前子节点中的第一个节点
lastChild当前子节点中的最后一个节点
nodeValue节点值
nodeName节点名称
nodeType节点类型:1代表元素;2代表属性节点 ;3代表文本节点
children返回当前元素的子元素节点
firstElementChild返回当前元素的第一个子元素节点
lastElementChild返回当前元素的最后一个元素节点
getAttributeNode("属性名")获取元素属性节点 例如getAttributeNode("id")获取元素的id

第三节 DOM实例

1.实现微博的广播效果

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>Document</title>
  <style type="text/css">
  .con
  {
	height:200px;
	border:1px solid #E1E2E6;
	margin-top:5px;
  }
  </style>
  <script>
	function add(){
	var condiv=document.createElement("div");
	condiv.innerHTML=document.getElementById("content").innerHTML;
	condiv.className="con";
	document.getElementById("bd").appendChild(condiv);
	}
  </script>
 </head>
 <body>
  <textarea id="content"></textarea>
  <br/>
  <input type="button" value="广播" οnclick="add()"/>
  <hr/>
<div id="bd"></div>
 </body>
</html>


 

2.购物车

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>Document</title>
  <script type="text/html" id="tem">
  <tr>
	<td><input type="checkbox" name="ckone" />
	</td>
	<td>temname</td>
	<td>temprice</td>
	<td>count</td>
	<td name="sum">zongjia</td>
  </tr>
  </script>
  <script>
  function sum()
  {
	var arrSum=document.getElementsByName("sum");
	var psum=0;
	for (var i=0;i<arrSum.length;i++)
	{
		psum+=parseFloat(arrSum[i].innerHTML);
	}
	document.getElementById("sum").innerHTML="合计:"+psum+"¥";
  }
  function add()
  {
	document.getElementById("tbd").innerHTML+=document.getElementById("tem").innerHTML.replace("temname",document.getElementById("gdName").value).replace("temprice",document.getElementById("price").value).replace("count",document.getElementById("count").value).replace("zongjia",Number(document.getElementById("price").value)*Number(document.getElementById("count").value));
	sum();
  }
  function selAll()
  {
	for (var i=0;i<document.getElementsByName("ckone").length;i++)
	{
		document.getElementsByName("ckone")[i].checked=document.getElementById("selectAll").checked;
	}
  }
  function del()
  {
	  var a=document.getElementsByName("ckone");
	for (var i=a.length-1;i>=0;i--)
	{
		if (a[i].checked)
		{
			a[i].parentNode.parentNode.remove();
		}
	}
	sum();
  }
  function faselect()
  {
	var a=document.getElementsByName("ckone");
	for (var i=a.length-1;i>=0;i--)
	{
		a[i].checked=!a[i].checked;
	}
  }
  </script>
 </head>
 <body>
 <fieldset>
 <legend>添加商品</legend>
 商品名称:<input type="text" name="" id="gdName"/>
 商品价格:<input type="text" name="" id="price"/>
 商品数量:<input type="number" name="" id="count" min="1" max="99"/>
 <input type="button" value="添加" οnclick="add()"/>
 </fieldset>
 <hr/>
 <h3>商品表</h3>
 <div>
  <table border='1' width="600">
  <thead>
	<tr>
		<th><input type="checkbox" name="" id="selectAll" οnclick="selAll()">全选</th>
		<th>商品名称</th>
		<th>单价</th>
		<th>商品数量</th>
		<th>总价格</th>
	</tr>
  </thead>
  <tbody id="tbd">
	
  </tbody>
  </table>
  <div style="width:600px;height:40px;color:red;">
  <b id="sum" style="float:right;margin-top:5px;">合计:</b>
  </div>
</div>
  <hr/>
  <input type="button" value="反选" οnclick="faselect()">
	<input type="button" value="删除" οnclick="del()">

 </body>
</html>


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值