首页 > 其他分享 >2023年8月22日

2023年8月22日

时间:2023-08-23 18:34:45浏览次数:35  
标签:const 22 countdown querySelector 2023 date document 节点

<!DOCTYPE html>
<html>
    <head>
    </head>

    <body>
        <div class="curTime">
            当前时间为: <span class="time">YYYY-MM-DD HH:mm</span>
        </div>
        <!--日期实例化-->
        <script>
            // 获取当前系统时间
            const date = new Date();
            // 指定时间 
            // const date2 = new Date('2023-06-01');

            // 练习使用日期函数
            // console.log('年: ' + date.getFullYear());
            // console.log('月: ' + date.getMonth() + 1); // 因为月份是从零开始的
            // console.log('天: ' + date.getDate());
            // console.log('星期: ' + date.getDay());
            // console.log('小时: ' + date.getHours());
            // console.log('分钟: ' + date.getMinutes());
            // console.log('秒:' + date.getSeconds());

            let time = document.querySelector('.time');
            let year = date.getFullYear();
            let month = date.getMonth();
            let day = date.getDate();
            let hour = date.getHours();
            let minute = date.getMinutes();

            // 补零;
            year = year > 9 ? year : '0' + year;
            month = month > 9 ? month : '0' + month;
            day = day > 9 ? day : '0' + day;
            hour = hour > 9 ? hour : '0' + hour;
            minute = minute > 9 ? minute : '0' + minute;
            time.innerHTML = `${year}-${month}-${day} ${hour}:${minute}`; 
            
        </script>       
    </body>
</html>

<!DOCTYPE html>
<html>
    <head>
        <style>
            .countdown {
              width: 240px;
              height: 305px;
              text-align: center;
              line-height: 1;
              color: #fff;
              background-color: brown;
              /* background-size: 240px; */
              /* float: left; */
              overflow: hidden;
            }
        
            .countdown .next {
              font-size: 16px;
              margin: 25px 0 14px;
            }
        
            .countdown .title {
              font-size: 33px;
            }
        
            .countdown .tips {
              margin-top: 80px;
              font-size: 23px;
            }
        
            .countdown small {
              font-size: 17px;
            }
        
            .countdown .clock {
              width: 142px;
              margin: 18px auto 0;
              overflow: hidden;
            }
        
            .countdown .clock span,
            .countdown .clock i {
              display: block;
              text-align: center;
              line-height: 34px;
              font-size: 23px;
              float: left;
            }
        
            .countdown .clock span {
              width: 34px;
              height: 34px;
              border-radius: 2px;
              background-color: #303430;
            }
        
            .countdown .clock i {
              width: 20px;
              font-style: normal;
            }
          </style>
    </head>

    <body>
        <div class="countdown">
            <p class="next">今天是2023年8月22日 情人节</p>
            <p class="title">下班倒计时</p>
            <p class="clock">
                <span id="hour">00</span>
                <i>:</i>
                <span id="minutes">25</span>
                <i>:</i>
                <span id="second">20</span>
            </p>
            <p class="tips">21:00:00 回家</p>
        </div>

        <script>
            // 做成一个定时任务,这样页面的倒计时比较人性化
            const clock = document.querySelector('clock');
            setInterval(function(){
                // 获取当前时间时间戳和下班时间时间戳
            const nowTime = +new Date();
            const leaveTime = +new Date('2023-08-22 21:00:00');
            const count = (leaveTime - nowTime) / 1000; // 得到的是秒数
            // 转为为对应的时间
            let h = parseInt(count / 60 / 60 % 60);
            let m = parseInt(count / 60 % 60);
            let s = parseInt(count % 60);
            h = h > 9 ? h : '0' + h;
            m = m > 9 ? m : '0' + m;
            s = s > 9 ? s : '0' + s;
            // 更新页面内容
            document.querySelector('#hour').innerHTML = h;
            document.querySelector('#minutes').innerHTML = m;
            document.querySelector('#second').innerHTML = s;
            }, 1000);
        </script>
    </body>
</html>

查找父节点、子节点、兄弟节点的案例

<!DOCTYPE html>
<html>
    <head>
        <style>
            .countdown {
              width: 240px;
              height: 305px;
              text-align: center;
              line-height: 1;
              color: #fff;
              background-color: brown;
              /* background-size: 240px; */
              /* float: left; */
              overflow: hidden;
            }
        
            .countdown .next {
              font-size: 16px;
              margin: 25px 0 14px;
            }
        
            .countdown .title {
              font-size: 33px;
            }
        
            .countdown .tips {
              margin-top: 80px;
              font-size: 23px;
            }
        
            .countdown small {
              font-size: 17px;
            }
        
            .countdown .clock {
              width: 142px;
              margin: 18px auto 0;
              overflow: hidden;
            }
        
            .countdown .clock span,
            .countdown .clock i {
              display: block;
              text-align: center;
              line-height: 34px;
              font-size: 23px;
              float: left;
            }
        
            .countdown .clock span {
              width: 34px;
              height: 34px;
              border-radius: 2px;
              background-color: #303430;
            }
        
            .countdown .clock i {
              width: 20px;
              font-style: normal;
            }
          </style>
    </head>

    <body>
        <div class="erweima">
            <i class = "close_btn">X</i>
            <img src="error.png" alt>            
        </div>

        <script>
            const btn = document.querySelector('.close_btn');
            btn.addEventListener('click', function(){
                // 通过 对象.parentNode 找到父节点
                btn.parentNode.style.display = 'none';
            });
            const children = btn.parentNode.children;
            // 通过 对象.nextElementSibling 找对下一个兄弟节点
            const nextBrother = btn.nextElementSibling;
            // 通过 对象.previouseElementSibling 找到前一个兄弟节点
            const preBrother = btn.nextElementSibling.previousElementSibling;
            console.log(preBrother);
            console.log(nextBrother);
        </script>
    </body>
</html>

创建节点、末尾增加节点、指定位置之前增加节点、拷贝节点、删除节点的一个小案例

<script>
            // 创建新标签
            const start = document.createElement('li');
            const end = document.createElement('li');
            // 获取到 ul li
            const ul = document.querySelector('ul');
            const li = document.querySelector('li');
            start.innerHTML = '测试数据';
            end.innerHTML = '测试数据';
            ul.appendChild(end);
            ul.insertBefore(start, li);
            // 通过 cloneNode 可以拷贝节点, true 代表包括子节点, false 不包括子节点(默认)
            ul.appendChild(ul.cloneNode(true));
            // 删除节点要通过父节点删除子节点,如果直接调用 ul.remove 就会删除所有节点
            ul.removeChild(end);
</script>

综合案例:通过表单接收数据,然后渲染到浏览器页面

<!DOCTYPE html>
<html>
    <head>
        <link rel="stylesheet" href="index.css" />
    </head>

    <body>
        <h1>新增学员</h1>
        <form class="info" autocomplete="off">
            姓名: <input type="text" class="uname" name="uname" />
            年龄: <input type="text" class="age" name="age" />
            性别:
                <select name="gender" class="gender">
                    <option value="男">男</option>
                    <option value="女">女</option>
                </select>
            薪资: <input type="text" class="salary" name="salary" />
            就业城市:
                <select name="city" class="city">
                    <option value="北京">北京</option>
                    <option value="上海">上海</option>
                    <option value="广州">广州</option>
                    <option value="深圳">深圳</option>
                    <option value="长春">长春</option>
                </select>
            <button class="add">录入</button>
        </form>

        <h1>就业榜</h1>
        <table>
            <thead>
                <tr>
                    <th>学号</th>
                    <th>姓名</th>
                    <th>年龄</th>
                    <th>性别</th>
                    <th>薪资</th>
                    <th>就业城市</th>
                    <th>操作</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>0001</td>
                    <td>路飞</td>
                    <td>20</td>
                    <td>男</td>
                    <td>20000</td>
                    <td>北京</td>
                    <td><a href="javascript:">删除</a></td>
                </tr>
            </tbody>
        </table>

        <script>
            // 获取元素
            const uname = document.querySelector('.uname');
            const age = document.querySelector('.age');
            const gender = document.querySelector('.gender');
            const salary = document.querySelector('.salary');
            const city = document.querySelector('.city');
            const tbody = document.querySelector('tbody');
            const items = document.querySelector('[name]');
            const arr = [];

            // 通过表单提交事件,将数据录入到下面的表单
            const info = document.querySelector('.info');
            info.addEventListener('submit', function(e){
                // 阻止默认行为,不跳转
                e.preventDefault();
                // 验证表单内容,不为空
                for(let i = 0; i < items.length; i++){
                    if(items[i].value === ''){
                        return alert('输入内容不能为空');    
                    }
                }
                // 创建新的对象
                const obj = {
                    stuId: arr.length + 1,
                    uname: uname.value,
                    age: age.value,
                    gender: gender.value,
                    salary: salary.value,
                    city: city.value
                }
                // 将对象追加到数组中
                arr.push(obj);
                // 清空表单 重置
                this.reset();
                // 调用渲染函数
                render();
            });

            // 2.渲染函数 增加和删除都需要渲染
            function render(){
                // 清空 tbody 原来的内容,把最新数组里面的数据渲染完毕
                tbody.innerHTML = '';
                for(let i = 0; i < arr.length; i++){
                    // 生成 tr
                    const tr = document.createElement('tr');
                    tr.innerHTML = `
                        <td>${arr[i].stuId}</td>
                        <td>${arr[i].uname}</td>
                        <td>${arr[i].age}</td>
                        <td>${arr[i].gender}</td>
                        <td>${arr[i].salary}</td>
                        <td>${arr[i].city}</td>
                        <td>
                            <a href="javascript:" data-id=${i}>删除</a>    
                        </td>
                    `
                    // 将 tr 元素追加到我们的表单中
                    tbody.appendChild(tr);
                }
            }

            // 删除操作
            tbody.addEventListener('click', function(e){
                if(e.target.tagName === 'A'){
                    arr.splice(e.target.dataset.id, 1);
                    // 重新渲染
                    render();
                }
            });
        </script>
    </body>
</html>

标签:const,22,countdown,querySelector,2023,date,document,节点
From: https://www.cnblogs.com/20200109-zwh/p/17649618.html

相关文章

  • 广州耀海科技有限公司受邀参加“第一届空间、大气、海洋与环境光学(SAME2023)”
    由中国激光杂志社主办,中国科学院上海光学精密机械研究所、中国科学院合肥物质科学研究院安徽光学精密机械研究所、北京空间机电研究所、西安理工大学、浙江大学、南昌航空大学协办的“第一届空间、大气、海洋与环境光学(SAME2023)”学术会议于2023年4月7-9日在上海嘉定召开,来自全国各......
  • 直波束传感器行业市场现状及未来发展趋势2023年
    2023年全球及中国直波束传感器行业头部企业市场占有率及排名调研报告 2022年全球直波束传感器市场规模约亿元,2018-2022年年复合增长率CAGR约为%,预计未来将持续保持平稳增长的态势,到2029年市场规模将接近亿元,未来六年CAGR为%。从核心市场看,中国直波束传感器市场占据全球约%......
  • 2023 React 18 系统入门 进阶实战《欢乐购》
    课程下载——2023React18系统入门进阶实战《欢乐购》提取码:c61a 分享课程——React18系统入门进阶实战《欢乐购》,2023年新课,附源码。React主要的原理VirtualDOM虚拟DOM传统的web应用,操作DOM一般是直接更新操作的,但是我们知道DOM更新通常是比较昂贵的。而React为了尽可......
  • 2023演练重点漏洞关注列表
    ......
  • 2023演练漏洞情报汇总(持续更新)
    还在惧怕0day漏洞的杀伤力吗?还在研究怎样才能及时更新防护规则吗?还在为【真洞】、【假洞】、【新洞】、【老洞】、【盘丝洞】相互参杂混淆视听而发愁吗?本期内容整理了本次攻防演练前后ddpoc平台搜集到的真实漏洞情报信息,文中漏洞均已通过poc校验,确保漏洞信息的有效性。从列表清单里......
  • 百度之星2023 初赛泛胡
    随机数列逆序对数期望线性性:对于两个数\(x,y(x<y)\),他们产生逆序对的概率是\(\dfracy{y+x}\)(考虑\(x,y\)最后一个同时出现的时刻,如果选中\(y\)出来那么有逆序对,否则没有)所以变成求\(\displaystyle{\sum_{i=1}^n\sum_{j=1}^{i-1}cnt_icnt_j\fraci{i+j}}\)这是一个差......
  • 2023年DAMA-CDGA/CDGP数据治理认证线上开班中,等你来
    DAMA认证为数据管理专业人士提供职业目标晋升规划,彰显了职业发展里程碑及发展阶梯定义,帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力,促进开展工作实践应用及实际问题解决,形成企业所需的新数字经济下的核心职业竞争能力。DAMA是数据管理方面的认证,帮助数据从业者提升......
  • 2023下半年北京/广州/深圳NPDP产品经理国际认证开班中
    产品经理国际资格认证NPDP是新产品开发方面的认证,集理论、方法与实践为一体的全方位的知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会(PDMA)成立于1979年,是全球范围内产品开发与管理专业人士最杰出的倡导者,协助个人、企业或......
  • 2023下半年深圳软考中级系统集成项目管理工程师即将开班
    系统集成项目管理工程师是全国计算机技术与软件专业技术资格(水平)考试(简称软考)项目之一,是由国家人力资源和社会保障部、工业和信息化部共同组织的国家级考试,既属于国家职业资格考试,又是职称资格考试。 系统集成项目管理工程师,属于软考三个级别中的“中级”。 考试合格者将颁发由中......
  • 2023年9月DAMA-CDGA/CDGP数据治理认证,进入报名
    据DAMA中国官方网站消息,2023年度第三期DAMA中国CDGA和CDGP认证考试定于2023年9月23日举行。 报名通道现已开启,相关事宜通知如下: 考试科目: 数据治理工程师(CertifiedDataGovernanceAssociate,CDGA)数据治理专家(CertifiedDataGovernanceProfessional,CDGP) 考试时间: CDGA:2023......