• dom事件操作例题,电子时钟,验证码,随机事件


    dom事件操作

    当事件发生时,可以执行js

    例子:

    当用户点击时,会改变<h1>的内容:

    <h1 onClick="this.innerHTML='文本更换'">点击文本!</h1>  

     HTML事件例如:

    onclick=""//点击时
    onload=""//页面加载完成时
    onchage=""//改变时
    onmouseover=""//鼠标移入时
    onmouseout=""//鼠标移出时
     onmousedown=""//鼠标点下去时
     onmouseup=""//鼠标松开时
    

     例子:
    1.页面开始打开五个新窗口,点击关闭按钮,关闭这五个窗口

    <button onClick="closeAll()">关闭</button>
    

    js代码:

    var arr = [];
        for (var i = 4; i >= 0; i--) {
            arr.push(window.open());//打开新页面6
        }
        function closeAll(){
            for (var i =4; i >= 0; i--) {
            arr[i].close();//关闭页面
            }
        }
    

     2.登陆验证

    账号:<input type="text"><br>
    密码:<input type="password"><br>
    <button onclick="denglu()">登录</button>
    

     js代码:

    function denglu(){
        //获取内容
            //找到元素
        var input =  document.getElementsByTagName("input");//找到input元素,为数组
        var uid = input[0];
        var pwd = input[1];
            //获取元素内容
        var uidval = uid.value;
        var pwdval = pwd.value;
        if(uidval == "" || pwdval == ""){
            console.log("账号或密码不能为空!");
            return;
        }
        //验证内容
        if(uidval == "admin"){
            console.log("登录成功!");
        }else{
    		console.log("账号不正确");
    	}
    }
    

     3.表格添加元素

    <button id = "add">添加一行</button>
    <table id="tab" border="1">
    	<tr>
    		<td>
    			123
    		</td>
    	</tr>
    </table>
    

     js代码:

    var tab1=null;
    
    //点击添加方法
    window.onload=function(){
        tab1= document.getElementById('tab');//获取表格
        var add1btn = document.getElementById('add1');//获取按钮
      //点击添加事件
        add1btn.onclick = function (){
        
            var trplus = document.createElement('tr');//添加标签,新建一行
            for (var i = 3; i >= 0; i--) {
                var tdplus = document.createElement('td');//新建一个单元格
                tdplus.innerHTML = 123;
                trplus.appendChild(tdplus);//将新建的td添加到tr中
            }
    
            tab1.appendChild(trplus);//将新建的tr添加到table中
    
        }
    }
    

      

    结果:

    JS获取日期当前时间日期及其他操作:

    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( );        //获取日期与时间
    

    电子时钟:

    时间:<input id="tt" type="text">//html中建立文本框显示时间
    

     js代码:

    window.onload=function(){
      setInterval(function(){
            dianziTime();
        },1000);
    }
    function dianziTime(){
        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"中
            
    }
    

      

     结果:

    随机事件:
    Math.random()方法返回大于等于 0 小于 1 的一个随机数。

    随机点名:

    var arr = ["温钊","高志伟","边秀通","李智伟","丁昆","张镇潇","刘庆亮","郭浩","李青","任星旭"];//新建数组
     var i = parseInt(Math.random()*10);
    //Math.random()的返回值是在0-1之间的,因为有10个值,所以*10,并取整数,作为数组arr的下标
     console.log(i);
     console.log(arr[i]);

    滚动随机抽:

    <body>
        <button id="start">开始</button>//建立开始按钮 
        <button id="end">停止</button>//建立结束按钮
        <div id="dd" >
        </div>//设置一块区域,中间内容显示名字
    </body>
    

     js代码:

    var setDom = null;//定时器
    var n = 0;//数组下标
    var divDom = null, //显示div
        startDom = null, //开始按钮
        endDom = null;//结束按钮
    window.onload = function(){
    	initDom(); //初始化变量
    	addEvent();//添加事件
        
    }
    var arr = ["温钊","高志伟","边秀通","李智伟","丁昆","张镇潇","刘庆亮","郭浩","李青","任星旭"];//新建数组
    
    function initDom(){
    	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);//清除定时器
        }
    }
    

     验证码获取并验证:

    验证码:<input id="yzmVal" type="text">
        <span id="yzm">加载中...</span>
        <button id="yz" onClick="yanzDom()">验证</button>
    

     js代码

    window.onload = function(){
    	yzmFun();
    	yanzDom();
    	var yanzhengm =document.getElementById('yzm').innerHTML;
    	
    }
    	
    function yzmFun(n=4){
    //设置输出4个验证码
        var str = "0123456789";//建立字符串0-9
        var sjs = "";//设置输出内容
        for(var i =0;i<n;++i){
            sjs += str.substr(Math.random()*str.length,1);
    //建立随机数,提取字符串内容,给sjs,共四次
        }
        document.getElementById('yzm').innerHTML= sjs;//将内容给<span>
    }
    
    function yanzDom(){
        	if($('#yzmVal').val()==$('#yzm').html()){
      			alert("验证成功");
      		}else{
    			alert("验证失败");
    		}
    }
    

      

  • 相关阅读:
    从零入门 Serverless | Knative 带来的极致 Serverless 体验
    SpringCloud 应用在 Kubernetes 上的最佳实践 — 高可用(熔断)
    阿里巴巴成立云原生技术委员会,云原生升级为阿里技术新战略
    解构云原生,从概念到落地:阿里云、声网、微博、好未来、CNCF 的专家们怎么看?
    人工智能训练云燧T10
    云计算应用场景分析
    昇腾全栈解决方案
    自动驾驶解决方案架构
    自动驾驶开发云平台业务分析
    ResNet-50模型图像分类示例
  • 原文地址:https://www.cnblogs.com/lzw123-/p/9240167.html
Copyright © 2020-2023  润新知