JavaScript 日期对象、DOM节点操作

日期对象

日期对象:使用new关键字实例化出来的对象

const date = new Date() //这样就获取到了一个日期对象

直接打印对象:

console.log(date)

打印到控制台如截图所示 

时间对象内的方法们:

1.获取对象

  1. 对象.getFullYear() -- 获取当前时间的年份
  2. 对象.getMonth() -- 获取当前时间的月数(0-11)
  3. 对象.geyDate() -- 获取当前时间的天数
  4. 对象.getDay() -- 获取当前星期几(0-6) -- 0是周天
  5. 对象.getHours() -- 获取当前时间的小时数
  6. 对象.getMinutes() -- 获取当前时间的分钟数
  7. 对象.getSeconds() -- 获取当前时间秒数
  8. 对象.getTime() -- 获取从1970.1.1到现在的毫秒数

2.设置对象

  1. setFullYear(year):设置年份
  2. setMonth(month):设置月份(0-11)
  3. setDate(date):设置日期(1-31)
  4. setHours(hours):设置小时(0-23)
  5. setMinutes(minutes):设置分钟(0-59)
  6. setSeconds(seconds):设置秒数(0-59)
  7. setMilliseconds(milliseconds):设置毫秒数(0-999)
  8. setTime(milliseconds):设置自1970年1月1日以来的毫秒数

运用实例

<body>
<div id="div1"></div>
<script>let a = setInterval(function(){const date = new Date()let year = date.getFullYear()//获取年let month = date.getMonth() + 1//获取月let day = date.getDate()//获取天let hour = date.getHours()//获取小时let minute = date.getMinutes()//获取分钟let second = date.getSeconds()//获取秒数let time = `${year}-${month}-${day}-${hour}-${minute}-${second}`console.log(time) //拼接字符串document.getElementById("div1").innerHTML = "现在是:"+timeif(time === "2025-1-18-18-30-0"){//一旦时间等于我们设置的事件就停止定时器clearInterval(a)const div1 = document.getElementById('div1')div1.innerText = time}},1000)
</script></body>
日期对象.toLocaleString()

还有一种非常简单的方法可以让日期以 xxxx/xx/xx  xx:xx:xx的格式输出

我们首先获取日期对象date。然后直接date.toLocaleString()就可以了

运用示例:

<body>
<div id="div1">
</div>
<script>const div1 = document.getElementById('div1')let date = new Date().toLocaleString()div1.innerText = datesetInterval(()=>{date = new Date().toLocaleString()div1.innerText = date},1000)
</script>
</body>

输出结果因为div设置了css样式,所以会显示为粉色

日期对象.toLocaleDateString()

用法相同,但是只获取年月日,不获取时分秒

时间戳

从1970.1.1 00:00:00到当前所经过的毫秒数    (1000ms = 1s)

获取时间戳的三种方法
1.先获取日期对象,通过对象里面的getTime()方法获取时间戳
2.+new Date()  简写,直接返回时间戳
3.Date.now()   直接返回时间戳

获取到时间戳之后我们可以设计倒计时的时候使用它
算法:将来时间戳 - 现在时间戳 = 剩余毫秒数(转换进制1k毫秒 = 1秒)

示例

<body>
<div id="div1">
</div>
<script>const div1 = document.getElementById('div1')const now =+new Date("2025-1-18 21:50:00")//获取未来时间戳let a = setInterval(function(){const time = +new Date()//获取现在时间戳const time_1 = now - time//求出剩余毫秒数//一秒 = 1000  一分钟 = 1000*60  一小时 = 1000*60*60  一天 = 1000*60*60*24const hour = Math.floor(time_1/ (1000 * 60 * 60));//除掉 小时const minute = Math.floor((time_1% (1000 * 60 * 60))/(1000*60));//先模除掉小时,剩余的就是分钟的毫秒,然后再除以分钟const second = Math.floor((time_1% (1000 * 60))/1000);//先模除分钟 再除以一秒div1.innerHTML =`${hour}:${minute}:${second}`},1000)
</script>
</body>

输出结果

要注意的是毫秒到时分秒的转换

Dom节点操作

Dom节点主要学习节点的增删查这三个,我们之前获取元素对象都是通过document....来获取,这是通过元素的id class等属性来获取。现在我们可以通过元素之间的关系来获取

Dom元素可以看作一个树,有上层的父节点,下层的子节点,同层的兄弟节点

1.父节点


设有一个对象 alpha,想得到它的父节点。可以使用:alpha.parentNode   父节点存在返回一个父节点对象,不存在返回null
如果想设置父节点的样式(display之类的)则需要使用alpha.parentElement.style.backgroundColor或者 this.parentNode.style.backgroudnColor

 

从这个截图中可以看到,alpha去修改父元素的style是没法成功的

2.子节点


子节点查找有两个方法:
1.childNodes 获取所有的子节点(包括文本节点,注释节点......)
2.children 获取所有的元素节点(标签)返回的是伪数组。这个是我们要学习的

children即使只有一个子节点也会以伪数组形式返回

3.兄弟节点


兄弟节点的获取也有两个,分别对应上一个兄弟节点和下一个兄弟节点:

1.上一个兄弟节点:对象.previousElementSibling
2.下一个兄弟节点:对象.nextElementSibling

4.创建节点

const name = document.createElement('节点标签名')

示例:const name = document.createElement('div')//创建一个div

5.追加节点

追加节点有两个方法:1.追加到父元素的最后面  2.追加到指定的位置

1.追加 
假设获取到父元素div,我有一个子元素想追加到div里面
div.appendchild(要追加的子元素)

2.插入
假设获取到父元素div,我有一个子元素想插入到指定的位置。
首先需要获取到div里面所有的子元素:const child = div.childern
div.childern会返回一个伪数组,可以使用下标访问这些数组元素,假设div有10个子元素,我像插入到最前面,代码如下:div.insertBefore(要插入元素,child[0])

6.克隆节点

语法格式: 元素.cloneNode(true/false) //克隆元素,返回值为克隆得到的元素

true和false的作用:
true表示深克隆,元素的子代元素也会被一起克隆。相当于一比一赋值
false表示浅克隆 浅克隆只会克隆该元素,但不会克隆子元素以及文本内容

克隆出来的元素的class id ....属性也会一并克隆

7.删除节点

删除节点需要用到父元素,代码格式:父元素.removeChild(要删除的元素)

示例 :ul1.removeChild(ul1.children[1])  ul1是一个父元素,删除父元素中的第二个子元素

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/67562.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python制作简易PDF查看工具PDFViewerV1.0

PDFViewer PDF浏览工具&#xff0c;Python自制PDF查看工具&#xff0c;可实现基本翻页浏览功能&#xff0c;其它功能在进一步开发完善当中&#xff0c;如果有想一起开发的朋友&#xff0c;可以留言。本软件完全免费&#xff0c;自由使用。 软件界面简洁&#xff0c;有菜单栏、…

开源AI智能名片2+1链动模式S2B2C商城小程序源码在活动运营中的应用与优化

摘要&#xff1a;在数字化时代&#xff0c;开源AI智能名片21链动模式S2B2C商城小程序源码作为一种创新的商业应用模式&#xff0c;为企业提供了强大的运营工具。本文旨在探讨该源码在活动运营中的应用与优化策略&#xff0c;包括活动类型与时间节点的梳理、活动模块化设计、后台…

Centos7系统下安装和卸载TDengine Database

记录一下Centos7系统下安装和卸载TDengine Database 安装TDengine Database 先看版本信息 [root192 ~]# cat /etc/centos-release CentOS Linux release 7.9.2009 (Core) [root192 ~]# uname -r 3.10.0-1160.119.1.el7.x86_64 [root192 ~]# uname -a Linux 192.168.1.6 3.10…

【专题三:穷举vs暴搜vs深搜vs回溯vs剪枝】46. 全排列

1.题目解析 2.讲解算法原理 1.首先画出决策树&#xff0c;越详细越好 2.设计代码 全局变量 List<List<Integer>> retList<Integer> pathboolean[] check dfs函数 仅关心某一节点在干什么 细节问题回溯 干掉path最后一个元素修改check权限 剪枝 check中为…

【氮化镓】香港科技大学陈Kevin-单片集成GaN比较器

一、引言(Introduction) GaN HEMT的重要性 文章开篇便强调了氮化镓(GaN)高电子迁移率晶体管(HEMT)在下一代功率转换系统中的巨大潜力。GaN HEMT具备高开关频率、低导通电阻、高击穿电压以及宽工作温度范围等优势,使其成为功率电子领域的热门研究对象。这些特性使得GaN…

【Linux】进程的程序替换

前言&#xff1a; 在未进行进程的程序替换时&#xff0c;父子进程的数据是独立的通过页表进行映射进行实现进程数据的独立性&#xff0c;但是父子进程的代码还是共享的&#xff0c;我父进程将子进程进行创建出来不仅仅只会有父子进程只进行执行共享代码的需求&#xff0c;有的…

linux网络编程11——线程池

1. 线程池 1.1 池化技术原理 池化技术 当一个资源或对象的创建或者销毁的开销较大时&#xff0c;可以使用池化技术来保持一定数量的创建好的对象以供随时取用&#xff0c;于是就有了池式结构。常见的池式结构包括线程池、内存池和连接池。 池化技术应用的前提条件主要包括三…

计算机网络 (51)鉴别

前言 计算机网络鉴别是信息安全领域中的一项关键技术&#xff0c;主要用于验证用户或信息的真实性&#xff0c;以及确保信息的完整性和来源的可靠性。 一、目的与重要性 鉴别的目的是验明用户或信息的正身&#xff0c;对实体声称的身份进行唯一识别&#xff0c;以便验证其访问请…

SSM宠物论坛设计系统

&#x1f345;点赞收藏关注 → 添加文档最下方联系方式咨询本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345; 项目视频 宠…

前后端分离的Java快速开发平台

采用SpringBoot3.x、Shiro、MyBatis-Plus、Vue3、TypeScript、Element Plus、Vue Router、Pinia、Axios、Vite框架&#xff0c;开发的一套权限系统&#xff0c;极低门槛&#xff0c;拿来即用。设计之初&#xff0c;就非常注重安全性&#xff0c;为企业系统保驾护航&#xff0c;…

ComfyUI-PromptOptimizer:文生图提示优化节点

ComfyUI-PromptOptimizer 是 ComfyUI 的一个自定义节点&#xff0c;旨在优化文本转图像模型的提示。它将用户输入的提示转换为更详细、更多样化、更生动的描述&#xff0c;使其更适合生成高质量的图像。无需本地模型。 1、功能 提示优化&#xff1a;优化用户输入的提示以生成…

电梯系统的UML文档05

Dispatcher 不控制实际的电梯组件&#xff0c;但它在软件系统中是重要的。每一个电梯有一个ispatcher&#xff0c;主要功能是计算电梯的移动方向、移动目的地以及保持门的打开时间。它和系统中除灯控制器以外的几乎所有控制对象交互。 安全装置也是一个环境对象&#xff0c;它…

【Spring Boot】掌握 Spring 事务:隔离级别与传播机制解读与应用

前言 &#x1f31f;&#x1f31f;本期讲解关于spring 事务传播机制介绍~~~ &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 &#x1f525; 你的点赞就是小编不断更新的最大动力 &#x1f386;那么废话…

go语言zero框架通过chromedp实现网页在线截图的设计与功能实现

在 GoZero 框架中实现网页在线截图的功能&#xff0c;可以通过集成 chromedp 库来控制 Chrome 浏览器进行截图。chromedp 是一个基于 Chrome DevTools 协议的 Go 包&#xff0c;可以用来在 Go 程序中模拟浏览器操作&#xff0c;如页面截图、DOM 操作、表单提交等。 下面是一个…

新星杯-ESP32智能硬件开发--SoC基础

本博文内容导读 1、当前嵌入式系统的发展情况&#xff0c;分析SoC作为物联网开发的重要技术&#xff0c;是未来物联网发展重要方向。 2、介绍SoC系统的组成和系统特点&#xff0c;了解SoC打下SoC基础。 3、介绍基于ESP32的SoC系列开发板&#xff0c;ESP32开发的系统功能进行总…

蓝桥杯备考:堆和priority queue(优先级队列)

堆的定义 heap堆是一种特殊的完全二叉树&#xff0c;对于树中的每个结点&#xff0c;如果该结点的权值大于等于孩子结点的权值&#xff0c;就称它为大根堆&#xff0c;小于等于就叫小根堆&#xff0c;如果是大根堆&#xff0c;每个子树也是符合大根堆的特征的&#xff0c;如果是…

微软官方Windows 10系统ISO镜像文件下载指南

简介 什么是ISO镜像文件 ISO镜像文件是一种特殊的数字文件格式&#xff0c; 精确复制了物理光盘的所有内容和结构 。这种文件通常用于存储完整的操作系统安装程序或其他大型软件包&#xff0c;便于在网络上传输和长期保存。ISO文件的核心优势在于其高度的完整性和可靠性&…

RabbitMQ-消息可靠性以及延迟消息

目录 消息丢失 一、发送者的可靠性 1.1 生产者重试机制 1.2 生产者确认机制 1.3 实现生产者确认 &#xff08;1&#xff09;开启生产者确认 &#xff08;2&#xff09;定义ReturnCallback &#xff08;3&#xff09;定义ConfirmCallback 二、MQ的持久化 2.1 数据持久…

fgets、scanf存字符串应用

题目1 夺旗&#xff08;英语&#xff1a;Capture the flag&#xff0c;简称 CTF&#xff09;在计算机安全中是一种活动&#xff0c;当中会将“旗子”秘密地埋藏于有目的的易受攻击的程序或网站。参赛者从其他参赛者或主办方偷去旗子。 非常崇拜探姬的小学妹最近迷上了 CTF&am…

【C语言系列】深入理解指针(1)

前言 总所周知&#xff0c;C语言中指针部分是非常重要的&#xff0c;这一件我们会介绍指针相关的内容&#xff0c;当然后续我还会出大概4篇与指针相关的文章&#xff0c;来深入的讲解C语言指针部分&#xff0c;希望能够帮助到指针部分薄弱或者根本不会的程序员们&#xff0c;后…