当前位置: 首页 > news >正文

Apls-day4

日期对象

实例化

1.日期对象
目标:掌握日期对象,可以让网页显示日期

  • 日期对象:用来表示时间的对象
  • 作用:可以显示系统时间

学习路径:
1.实例化
2.日期对象方法
3.时间戳

实例化

  • 在代码中发现了new关键字时,一般将这个操作称作实例化
  • 创建一个时间并获取时间
    • 获得当前时间

        const date = new Date()
      
    • 获得指定的时间

        const date = new Date('2008-8-8')console.log(date)
      

日期对象的方法

使用场景:因为日期对象返回的数据我们不能直接使用,所以需要转换为实际开发中常用的格式
在这里插入图片描述

综合案例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

时间戳

目标:能够获得当前的时间戳

  • 使用场景:如果计算倒计时效果,前面方法无法直接计算,需要借助于时间戳完成
  • 什么是时间戳:是指某个时间起至现在的毫秒数,它是一种特殊的计量时间的方式
  • 算法:
    • 将来时间戳 - 现在的时间戳 = 剩余时间毫秒数
    • 剩余时间毫秒数 转换为 剩余时间的 年月日时分秒 就是倒计时时间
    • 比如 将来时间戳 2000ms - 现在时间戳 1000ms = 1000ms
    • 1000ms 转换为就是 0 小时0分1秒

三种方法获取时间戳
在这里插入图片描述
第三种方法只能得到当前的时间戳,而前面两种可以返回指定时间的时间戳

毕业倒计时效果

需求:计算到下课还有多少时间
分析:
1.用将来的时间减去现在时间就是剩余时间
2.核心:用将来的的时间戳减去现在的时间戳
3.把剩余的时间转换为 天 时 分 秒
在这里插入图片描述
在这里插入图片描述

节点操作

DOM节点

  • DOM树里每一个内容称之为节点
  • 节点类型
    • 元素节点:所有的标签 比如body div ;html是根节点
    • 属性节点:所有的节点比如href
    • 文本节点:所有的文本
    • 其他

查找节点

  • 关闭二维码案例:
    • 点击关闭按钮,关闭的是二维码的盒子,还要获取erweima盒子
  • 思考:
    • 关闭按钮 和 erweima是什么关系?
    • 父子关系
    • 点击关闭按钮,直接关闭它的爸爸,就无需获取erweima元素了
  • 节点关系:针对的找亲戚返回的都是对象
    • 父节点
    • 子节点
    • 兄弟节点
  • 父节点查找:
    • parentNode 属性

    • 返回最近一级的父节点 找不到返回null

      子元素.parentNode
      

综合案例

关闭二维码
在这里插入图片描述

  • 子节点查找
    • childNodes
      • 获得所有子节点、包含文本节点(空行、换行)、注释节点等
  • children属性
    • 仅获得所有元素节点

    • 返回的还是一个伪数组

        父元素.children
      
  • 兄弟关系查找:
    1.下一个兄弟节点:
    • nextElementSibling属性
      2.上一个兄弟节点:
    • previousElementSibling属性

增加节点

  • 很多情况下,我们需要在页面中增加元素
    • 比如,点击发布按钮,可以增加一条信息
  • 一般情况下,我们新增节点,按照如下操作:
    • 创建一个新的节点
    • 把创建的新的节点放入到指定的元素内部
  • 学习路线:
    • 创建节点
    • 追加节点

1.创建节点

  • 即创造出一个新的网页元素,再添加到网页内,一般先创建节点,然后插入节点

  • 创建元素节点方法:

      document.createElement('标签名')
    

2.追加节点

  • 要想在界面看到,还得插入到某个父元素中

  • 插入到父元素的最后一个子元素:

    //插入到这个父元素的最后
    父元素.appendChild(要插入的元素)
    
  • 插入到父元素中某个子元素的前面

      //插入到某个子元素的前面父元素.insertBefore(要插入的元素,在哪个元素前面)
    
  • 特殊情况下,我们新增节点,按照如下操作:

    • 复制一个原有节点
    • 把复制的节点放入到指定的元素内部
  • 克隆节点

      元素.cloneNode(布尔值)
    

cloneNode会克隆出一个跟原标签一样的元素,括号内传入布尔值

  • 若为true,则代表克隆时会包含后代节点一起克隆
  • 若为false,则代表克隆时不包含后代节点
  • 默认为false

在这里插入图片描述

学成在线案例渲染

需求:按照数据渲染页面
分析:
1.准备好空的ul结构
2.根据数据的个数,创建一个新的空li
3.li里面添加内容img标题等
4.追加给ul

在这里插入图片描述

删除节点

目标:能够具备删除节点的能力

  • 若一个节点在页面中已不需要时,可以删除它

  • 在javaScript原生DOM操作中,要删除元素必须通过父元素删除

  • 语法:

      父元素.removeChild(要删除的元素)
    
  • 注:

    • 如不存在父子关系则删除不成功
    • 删除节点和隐藏节点(display:none)有区别的:隐藏节点还是存在的,但是删除,则从html中删除节点

M端事件

在这里插入图片描述
在这里插入图片描述

JS插件

在这里插入图片描述

综合案例

学生信息表案例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

<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')
//获取所有带有name属性的元素
const items = document.querySelectorAll('[name]')
//声明一个空的数组
const arr = []
//1.点击模块
//1.1表单提交事件
const info = document.querySelector('.info')
info.addEventListener('submit',function(e){//阻止默认行为,不跳转e.preventDefault()// console.log(11);//这里进行表单验证,如果不通过,直接中断//先遍历循环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 = ``//遍历arr数组for(let i = 0 ;i < arr.length;i++ ){//生成trconst 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>`//追加元素 父元素.appendChild(子元素)tbody.appendChild(tr)}
}//删除操作
//3.1事件委托 tbody
tbody.addEventListener('click',function(e){if(e.target.tagName === 'A'){//得到当前元素的自定义属性//删除arr数组对应数据arr.splice(e.target.dataset.id,1)  //选择的 删除的个数//重新渲染一次render()}
})
http://www.dtcms.com/a/585997.html

相关文章:

  • 国家网信办发布的第十四批深度合成算法备案综合分析报告
  • 动感网站模板网站百度搜不到了
  • 赚钱软件哪个赚钱多又快Wordpress校内优化
  • 小项目:猜数字游戏
  • 网易门户网站建设wordpress 非插件cdn
  • “征服式学习”提示词工具箱
  • 【ZeroRange WebRTC】WebRTC 访问控制:最小权限与短期凭证(深入指南)
  • 前端-表格
  • 快速排名网站怎么做多语言网站
  • 墨境 | 水墨风动作Roguelite游戏
  • 深度学习:python人脸表情识别系统 情绪识别系统 深度学习 神经网络CNN算法 ✅
  • Similarity and Dissimilarity Measures|相似性和不相似性度量
  • 树莓派学习资料共享
  • 我们来学AI编程 -- 深入分析Lingma后台程序
  • Rootkit检测利器rkhunter详解:原理、实践与渗透测试应用
  • 济南制作网站公司哪家好鱼鱼cms
  • 专门做自助游攻略的网站是哪个济南品牌网站建设价格低
  • 网站开发设计创建一个餐饮公司的模板
  • Go语言爬虫:支持xpath解析的 htmlquery 库的详细使用
  • Redisson解锁失败,watchdog会不会一直续期下去?
  • 网站建设的单可以刷吗产品网站开发流程
  • 51-基于单片机的多功能油烟机控制系统设计与实现
  • 简述企业网站的建设流程购物网站 功能
  • Git分支上游追踪完全解析:git branch -u与--set-upstream-to用法精讲
  • 【BuildFlow 筑流】Duration.rs 文件实现详解
  • Canal实时同步MySQL数据到Elasticsearch
  • Python 操作 Elasticsearch
  • 微网站建设找哪家公司好中国网站备案取消
  • AI Agent设计模式 Day 3:Self-Ask模式:自我提问驱动的推理链
  • RAG论文阅读笔记