HTML DOM应用案例2
<html>
<head>
<title>day03</title>
<script type="text/javascript" language="javascript" src="js/myjs.js"></script>
<link type="text/css" rel="stylesheet" href="css/mycss.css"/>
<style>
table{
border-collapse:collapse;
}
td{
border:1px solid gray;
}
tr input{
width:25px;
}
</style>
</head>
<body onload="testNode()">
<form>
<h2>表单的验证与提交</h2>
管理员账号:<input id="account" class="txt" onfocus="this.className='txt_focus';" onblur="valiAcc(this)"/>
<span id="accountInfo">10个长度以内的字母、数字的组合</span><br/>
电话号码:<input id="phone" class="txt" onfocus="this.className='txt_focus';" onblur="valiPhone(this)"/>
<span id="phoneInfo">形如:010-12345678</span><br/><br/>
<input type="submit" value="保存" onclick="alert(valiAll())" />
<h2>节点查询展示</h2>
<div id="div01">
<p id="p01">我是段落1</p>
<p id="p02">我是段落2</p>
<input type="radio" name="sex"/>男
<input type="radio" name="sex"/>女
</div>
<input type="radio" name="sex"/>无
<h2>购物车</h2>
<table id="shoppingCar">
<tr>
<td style="width:100px;">商品名称</td>
<td style="width:100px;">单价</td>
<td style="width:200px;">数量</td>
<td style="width:100px;">小计</td>
</tr>
<tr>
<td style="width:100px;">book1</td>
<td style="width:100px;">10.0</td>
<td style="width:200px;">
<input type="button" value="-" onclick="decrease(this)"/>
<input type="text" value="1" readonly="readonly"/>
<input type="button" value="+" onclick="increase(this)"/>
</td>
<td style="width:100px;">10.0</td>
</tr>
<tr>
<td style="width:100px;">book2</td>
<td style="width:100px;">5.0</td>
<td style="width:200px;">
<input type="button" value="-" onclick="decrease(this)"/>
<input type="text" value="1" readonly="readonly"/>
<input type="button" value="+" onclick="increase(this)"/>
</td>
<td style="width:100px;">5.0</td>
</tr>
<tr>
<td style="width:100px;">book3</td>
<td style="width:100px;">15.0</td>
<td style="width:200px;">
<input type="button" value="-" onclick="decrease(this)"/>
<input type="text" value="1" readonly="readonly"/>
<input type="button" value="+" onclick="increase(this)"/>
</td>
<td style="width:100px;">15.0</td>
</tr>
<tr>
<td colspan="3" style="text-align:right" >总计:</td>
<td>30.0</td>
</tr>
</table>
<h2>节点增加展示</h2>
<div id="div02">
<p>我是第1个段落</p>
</div>
<input type="button" value="增加段落" onclick="addNode()"/>
<input type="button" value="首行增加段落" onclick="addNode2()"/>
<input type="button" value="删除段落" onclick="deleteNode()"/>
<h2>动态创建页面元素</h2>
<input type="button" onclick="productNode(this)" value="添加新元素"/>
</form>
</body>
</html>
function valiAcc(obj){
obj.className= "txt";
var account = obj.value;
var regex = /^[0-9a-zA-Z]{1,10}$/g;
var flag = regex.test(account);
//判断
if(flag){
document.getElementById("accountInfo").className="vali_success";
document.getElementById("accountInfo").innerText="";
}else{
document.getElementById("accountInfo").className="vali_fail";
document.getElementById("accountInfo").innerText="10个长度以内的字母、数字组合";
}
return flag;
}
function valiPhone(obj){
obj.className= "txt";
var account = obj.value;
var regex = /^\d{3}}$/g;
var flag = regex.test(account);
//判断
if(flag){
document.getElementById("phoneInfo").className="vali_success";
document.getElementById("phoneInfo").innerText="";
}else{
document.getElementById("phoneInfo").className="vali_fail";
document.getElementById("phoneInfo").innerText="形如:010-12345678";
}
return flag;
}
function valiAll(){
var acc = document.getElementById("account");
var phone = document.getElementById("phone");
return valiAcc(acc) && valiPhone(phone);
}
function testNode(){
var divObj = document.getElementById("div01");
var parentNode = divObj.parentNode;
//console.log(parentNode.nodeName+","+parentNode.nodeType);
var nodeArr = divObj.childNodes;
for(var i = 0;i<nodeArr.length;i++){
//console.log(nodeArr[i].nodeName+","+nodeArr[i].nodeType);
}
var p02 = document.getElementById("p02");
var p01 = p02.previousSibling.previousSibling;
//console.log(p01.nodeName+","+p01.nodeType);
var sexArr = document.getElementsByName("sex");
//console.log(sexArr.length);
var inputArr = document.getElementsByTagName("input");
var inputAr= divObj.getElementsByTagName("input");
console.log(inputAr.length);
}
//购物车减
function decrease(obj){
var txtObj = obj.nextSibling.nextSibling; //nextSibling 获取下一个节点
if(txtObj.value>0){
txtObj.value--;
}
cal();
}
//购物车加
function increase(obj){
var txtObj = obj.previousSibling.previousSibling; //previousSibling 获取上一个节点
txtObj.value++;
cal();
}
function cal(){
var tbObj = document.getElementById("shoppingCar"); //获取table对象
var trArr = tbObj.getElementsByTagName("tr"); //获取所有的行对象
//定一个计数器,用存储总价值
var totalPrice = 0;
for(var i=1;i<trArr.length-1;i++){
//获取当前行对象
var trObj = trArr[i];
//获取单价
var price = trObj.getElementsByTagName("td")[1].innerText;
//获取数量
var num = trObj.getElementsByTagName("input")[1].value;
//当前商品的小计
var xj = price*num;
//给小计栏赋值
var tdArr = trObj.getElementsByTagName("td");
tdArr[tdArr.length-1].innerText = xj.toFixed(2);
totalPrice += xj;
}
trArr[trArr.length-1].lastChild.previousSibling.innerText = totalPrice.toFixed(2);
}
var n = 1;
function addNode(){
n++;
var divObj = document.getElementById("div02");
var pObj = document.createElement("p"); // <p></p>
pObj.innerText="我是第"+n+"个段落";
divObj.appendChild(pObj);
}
function addNode2(){
var divObj = document.getElementById("div02");
var pObj = document.createElement("p");
pObj.innerText="我是第"+0+"个段落";
divObj.insertBefore(pObj,divObj.getElementsByTagName("p")[0]);
}
function deleteNode(){
if(n>0){
n--;
}
var divObj = document.getElementById("div02");
var pArr = divObj.getElementsByTagName("p");
if(pArr.length>0){
divObj.removeChild(pArr[pArr.length-1]);
}
}
function productNode(obj){
var newButton = document.createElement("input"); //<input></input>
newButton.type="button";
newButton.value="New Button";
newButton.onclick=function(){
alert("hello");
}
obj.parentNode.insertBefore(newButton,obj);
var aObj=document.createElement("a");
aObj.innerHTML="to百度";
aObj.target="_blank";
aObj.href="http://www.baidu.com";
obj.parentNode.appendChild(aObj);
}
HTML DOM应用案例2的更多相关文章
- DOM综合案例、SAX解析、StAX解析、DOM4J解析
今日大纲 1.DOM技术对xml的增删操作 2.使用DOM技术完成联系人管理 3.SAX和StAX解析 4.DOM4J解析 5.XPATH介绍 1.DOM的增删操作 1.1.DOM的增加操作 /* * ...
- 前端JavaScript之DOM使用案例
1.弹出框点击关闭 (这个例子关键自己创建标签以及属性,不是太好想啊,而且作用相对来数也不是太大) <!DOCTYPE html> <html> <head> &l ...
- JQuery:JQuery基本语法,JQuery选择器,JQuery DOM,综合案例 复选框,综合案例 随机图片
知识点梳理 课堂讲义 1.JQuery快速入门 1.1.JQuery介绍 jQuery 是一个 JavaScript 库. 框架:Mybatis (jar包) 大工具 插件:PageHelper (j ...
- DOM操作案例之--全选与反选
全选与反选在表单类的项目中还是很常见的,电商项目中的购物车一定少不了这个功能. 下面我只就用一个简单的案例做个演示吧. <div class="wrap"> <t ...
- HTML DOM应用案例1
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- JS DOM操作案例
显示隐藏表单文本内容 <input type="text" value="手机"> var text = document.querySelecto ...
- JavaScript DOM详解
欢迎转载,转载请标明出处: http://blog.csdn.net/johnny901114/article/details/52727448 本文出自:[余志强的博客] 一.DOM概述 D: Do ...
- 第二章 JavaScript案例(中)
1. js事件 HTML代码 <!DOCTYPE html> <html lang="en" onUnload="ud()"> < ...
- DOM操作1
1.DOM文档对象模型:操作页面元素(标签) html文件看成一个文档,把文档看成一个对象 xml也是一种文档,标签自定义,系统不自带标签,偏向于存储数据 2.DOM树:由文档及文档中的所以元素(标签 ...
随机推荐
- 【译】Yarn上常驻Spark-Streaming程序调优
作者从容错.性能等方面优化了长时间运行在yarn上的spark-Streaming作业 对于长时间运行的Spark Streaming作业,一旦提交到YARN群集便需要永久运行,直到有意停止.任何中断 ...
- C语言编程练习(一)
问题一: 问题描述:输入n个数,n<=100,找到其中最小的数和最大的数 输入样例: 4 1 2 3 4 输出样例:14 #include " ...
- 上传本地项目到githup仓库
1.在网上下载Git,然后安装 点击下一步 2.默认选择,下一步 3.选择使用命令行环境,下一步 4.后续步骤默认选择,点击下一步,等待安装完成 5.在githup上面新建一个仓库存放项目代码,具体方 ...
- 入坑IT十年(二)技术以外
上一篇博客里提到:技术越来越简单,发布后不久,就看到<技术并不是越来越简单>,这显然是打擂台来了. 技术究竟是不是越来越简单?其实这个问题,要看你究竟是以什么角度来思考这个问题.我们可以举 ...
- Ubuntu16.04 install mysql5.X
打开终端: Ctrl+Alt+T 安装ubuntu自带的mysql-server: sudo apt-get install mysql-server 输出Y按回车如下图: 默认安装为root用户,所 ...
- 更新——Canvas画布动画效果之实现倒计时
Hello,大家好! 小W复活啦!继续欢乐的给大家更博,输送新知识~~ 不开玩笑啦!秒进正题~~~ 上次更博,小W给大家介绍了Canvas画布的基础部分,以及实现了一个由7*10点阵图显示的倒计时的基 ...
- Android 屏幕相关概念(1)
1. 术语和概念 术语 说明 备注 Screen size(屏幕尺寸) 指的是手机实际的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸 摩托罗拉milestone手机是3. ...
- 奥利奥好吃吗?Android 8.0新特性适配测试报告来啦!
WeTest 导读 谷歌2017 I/O开发者大会上发布了Android 8.0的正式版, 其官方代号为Oreo(奥利奥).网上关于Android8.0新功能特性的介绍已铺天盖地,新功能特性会对程序应 ...
- Babylon.GUI官方文档翻译
Babylon.GUI是一个基于Babylon.js的WebGL库,可以用来在WebGL3D场景中生成交互性UI与动态纹理.相比于html ui,Babylon.GUI的功能较为简化,但使用起来也更加 ...
- Linq标准查询操作符
Linq的出现让代码简洁了不少.之前在项目中基本都在使用它,但是没有完整的整理过,今天借这个周末,将其进行整理,方便后期对其的使用.Linq的操作可以分为聚合,连接,转换,元素操作符,相等操作,生成 ...