Dom运用1
1、简单计算器
<!-- 第一个数-->
<input type="text">
<!-- 符号复选框-->
<select name="" id="">
<option>+</option>
<option>-</option>
<option>*</option>
<option>/</option>
<option>%</option>
</select>
<!-- 第二个数-->
<input type="text">
<!-- 计算按钮-->
<button onclick="jisuan()">=</button>
<!-- 结果输出-->
<input type="text" placeholder="结果">
//全局变量
var inputs = null;//文本框
var input1 = null;//第一个文本框
var input2 = null;//第二个文本框
var select1 = null;//下拉框
var input3 = null;//结果文本框
//页面加载
window.onload = function(){
initVal();
}
//找到各元素
function initVal(){
select1 = document.getElementsByTagName('select')[0];
inputs = document.getElementsByTagName('input');
input1 = inputs[0];
input2 = inputs[1];
input3 = inputs[2];
}
//结果计算
function jisuan(){
input3.value = eval(input1.value + select1.value + input2.value);
}
2、电子时钟
<input id="tt" type="text"><!--建立文本框显示时间-->
<script>
function dianziTime(name){
var t = new Date(),//新建一个时间
y = t.getFullYear(),//获取年
m = (+t.getMonth()+1) >= 10 ? +t.getMonth()+1 : "0" +(+t.getMonth()+1),
//获取月份,月份下标是(0-11),与实际日期差1
//三目运算,如果是1位数,前面加0
d = t.getDate(),//获取日
h = t.getHours(),//获取小时
f = t.getMinutes(),//获取分钟
s = t.getSeconds();//获取秒
var str = y+"-"+m+"-"+d+" "+h+":"+f+":"+s;//显示设置
document.getElementById('tt').value = str;//将时间放在id="tt"中
}
</script>
注:此方法获取的时间是刷新页面时的时间,非动态
获取日期,当前时间日期及其他操作方式:
var myDate = new Date();
myDate.getYear(); //获取当前年份(2位)
myDate.getFullYear(); //获取完整的年份(4位,1970-????)
myDate.getMonth(); //获取当前月份(0-11,0代表1月)
myDate.getDate(); //获取当前日(1-31)
myDate.getDay(); //获取当前星期X(0-6,0代表星期天)
myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数)
myDate.getHours(); //获取当前小时数(0-23)
myDate.getMinutes(); //获取当前分钟数(0-59)
myDate.getSeconds(); //获取当前秒数(0-59)
myDate.getMilliseconds(); //获取当前毫秒数(0-999)
myDate.toLocaleDateString(); //获取当前日期
var mytime=myDate.toLocaleTimeString(); //获取当前时间
myDate.toLocaleString( ); //获取日期与时间
动态时间的获取(定时器):
window.onload = function(){
setInterval(function(){
//建立定时器,每1秒运行一次
dianziTime();
},1000);
}
3、元素的添加删除和修改
<!--创建按钮-->
<button onClick="tianjia()" style="background: red;">添加一行</button>
<!--创建表格-->
<table id="tab" border="1">
<tr>
<td>编号</td>
<td>姓名</td>
<td>性别</td>
<td>年龄</td>
<td>操作</td>
</tr>
<tr>
<td>1</td>
<td>张三</td>
<td>男</td>
<td>12</td>
<td><span>删除</span></td>
</tr>
<tr>
<td>123</td>
<td>223</td>
<td>323</td>
<td>323</td>
<td><span>删除</span></td>
</tr>
</table>
//添加td并修改内容
function tianjia(){
var tab = document.getElementById("tab");
var tr = document.createElement("tr");
for (var i = 0; i < 5; i++) {
var td = document.createElement("td");
if(i < 4){
td.innerHTML = 123;
}
// 添加子节点
else{
var span = document.createElement("span");
span.innerHTML = "删除";
td.appendChild(span);
span.onclick = function(){
tr.remove();
}
var button = document.createElement("button")
button.innerHTML = "变色";
td.appendChild(button);
button.onclick = function(){
tr.style.color = "red";
}
}
tr.appendChild(td);
}
tab.appendChild(tr);
}
效果:



4、随机点名
var arr = ["赵","钱","孙","李","周","吴","郑","王","冯","陈"];//新建数组
var i = parseInt(Math.random()*10);
//Math.random()的返回值是在0-1之间的,因为有10个值,所以*10,并取整数,作为数组arr的下标
console.log(i);
console.log(arr[i]);
方法:Math.random()
返回大于等于 0 小于 1 的一个随机数。
5、滚动抽奖
<!--建立开始按钮 -->
<button id="start">开始</button>
<!--建立结束按钮-->
<button id="end">停止</button>
<!--显示名字-->
<div id="dd" style="width: 300px; height: 50px;background: red;text-align: center; line-height: 50px;">
</div>
//定义全局变量
var divDom = null;//显示div
var startDom = null;//开始按钮
var endDom = null;//结束按钮
//页面加载完成
window.onload = function(){
divDom = document.getElementById('dd');//找到区域
startDom = document.getElementById('start');//找到开始按钮
endDom = document.getElementById('end');//找到结束按钮
}
//运行 function addEvent(){
//开始事件
startDom.onclick = function(){
//点击运行方法
setDom = setInterval(function(){
//建立一个定时器,每1毫秒显示一次
divDom.innerHTML = arr[n];
//将arr[0]中的内容赋值给div
n++;
if(n >= 10){
n = 0;
}
//当n=10时,运行完一边,设置n=0,再重新循环
},1);
}
//结束事件
endDom.onclick = function(){
clearInterval(setDom);//清除定时器
}
}
Dom运用1的更多相关文章
- 关于DOM的操作以及性能优化问题-重绘重排
写在前面: 大家都知道DOM的操作很昂贵. 然后贵在什么地方呢? 一.访问DOM元素 二.修改DOM引起的重绘重排 一.访问DOM 像书上的比喻:把DOM和JavaScript(这里指ECMScri ...
- 读书笔记:JavaScript DOM 编程艺术(第二版)
读完还是能学到很多的基础知识,这里记录下,方便回顾与及时查阅. 内容也有自己的一些补充. JavaScript DOM 编程艺术(第二版) 1.JavaScript简史 JavaScript由Nets ...
- 页面嵌入dom与被嵌入iframe的攻防
1.情景一:自己的页面被引入(嵌入)至别人的页面iframe中 if(window.self != window.top){ //url是自己页面的url window.top.location.hr ...
- 通俗易懂的来讲讲DOM
DOM是所有前端开发每天打交道的东西,但是随着jQuery等库的出现,大大简化了DOM操作,导致大家慢慢的“遗忘”了它的本来面貌.不过,要想深入学习前端知识,对DOM的了解是不可或缺的,所以本文力图系 ...
- HTML DOM 介绍
本篇主要介绍DOM内容.DOM 节点.节点属性以及获取HTML元素的方法. 目录 1. 介绍 DOM:介绍DOM,以及对DOM分类和功能的说明. 2. DOM 节点:介绍DOM节点分类和节点层次. 3 ...
- HTML DOM 对象
本篇主要介绍HTML DOM 对象:Document.Element.Attr.Event等4个对象. 目录 1. Document 对象:表示文档树的根节点,大部分属性和方法都是对元素进行操作. 2 ...
- 重撸js_2_基础dom操作
1.node 方法 返回 含义 nodeName String 获取节点名称 nodeType Number 获取节点类型 nodeValue String 节点的值(注意:文本也是节点) 2.inn ...
- 虚拟dom与diff算法 分析
好文集合: 深入浅出React(四):虚拟DOM Diff算法解析 全面理解虚拟DOM,实现虚拟DOM
- 窥探Vue.js 2.0 - Virtual DOM到底是个什么鬼?
引言 你可能听说在Vue.js 2.0已经发布,并且在其中新添加如了一些新功能.其中一个功能就是"Virtual DOM". Virtual DOM是什么 在之前,React和Em ...
- jQuery学习之路(2)-DOM操作
▓▓▓▓▓▓ 大致介绍 jQuery作为JavaScript库,继承并发扬了JavaScript对DOM对象操作的特性,使开发人员能方便的操作DOM对象. ▓▓▓▓▓▓ jQuery中的DOM操作 看 ...
随机推荐
- 02 . Shell变量和逻辑判断及循环使用
Shell变量 系统变量 在命令行提示符直接执行 env.set 查看系统或环境变量.env 显示用户环境变量,set 显示 Shell预先定义好的变量以及用户变量.可以通过 export 导出成用户 ...
- PAT A1003 Emergency 题解
PAT A1003 Emergency PAT A1003 Emergency 题目简述: 原题为英文题目,所以在这里简述一下题意: 给定n个点和m条无向路以及起点.终点 下面一行n个数,第i个数表示 ...
- MySQL授权--WITH GRANT OPTION
今天在学习MySQL的时候,看到一句描述 WITH GRANT OPTION should be left out if the user need not be able to grant othe ...
- 单表数据加载到TreeView(.Node.Level>=2) "蝴蝶效应" SelectedNode注意事项 效能优化 综合问题
using System; using System.Collections.Generic; using System.ComponentModel; using System.Configurat ...
- Spark 两种方法计算分组取Top N
Spark 分组取Top N运算 大数据处理中,对数据分组后,取TopN是非常常见的运算. 下面我们以一个例子来展示spark如何进行分组取Top的运算. 1.RDD方法分组取TopN from py ...
- HDU 4352 XHXJ's LIS HDU 题解
题目 #define xhxj (Xin Hang senior sister(学姐)) If you do not know xhxj, then carefully reading the ent ...
- 【ASP.NET Core】mdl conflicts with tinymce
When I implementd the popular Richtext Editor tinymce for this web application, it conflicts with ma ...
- java学习第三天2020/7/8
一. 学习了数组的使用 一维数组的使用 (1)类型[ ] 名称 名称=new 类型[]{元素1,元素2......} (2)类型[] 名称={元素1,元素2......} (3)类型[] 名称=new ...
- 介绍下 npm 模块安装机制,为什么输入 npm install 就可以自动安装对应的模块?
1. npm 模块安装机制: 发出npm install命令 查询node_modules目录之中是否已经存在指定模块 若存在,不再重新安装 若不存在 npm 向 registry 查询模块压缩包的网 ...
- 数据可视化之powerBI技巧(十三)PowerBI作图技巧:动态坐标轴
之前的文章中介绍了如何制作动态的分析指标,这篇进行文章再介绍一下如何制作动态的坐标轴. 假设要分析的数据为销售额,分别从产品和地区两个维度进行分析,要实现的效果是,如果选择的是产品,则坐标轴是各个产品 ...