JavaScript日期对象、DOM节点操作(查找、增加、克隆、删除)

目录

  • 1. 日期对象
  • 2. DOM节点操作
    • 2.1 查找节点
    • 2.2 增加节点
    • 2.3 克隆节点
    • 2.4 删除节点

1. 日期对象

实例化日期对象

  • 获取当前时间: new Date()
  • 获取指定时间: new Date('2023-12-1 17:12:08')

日期对象方法:

方法作用说明
getFullYear()获得年份获取四位年份
getMonth()获得月份取值为0 ~ 11,所以需要加1
getDate()获取月份中的每一天不同月份取值也不相同
getDay()获取星期取值为0 ~ 6,星期天为0
getHours()获取小时取值为0 ~ 23
getMinutes()获取分钟取值为0 ~ 59
getSeconds()获取秒取值为0 ~ 59

时间格式转换

  • date.toLocaleString(): 日期 + 时间
  • date.toLocaleDateString(): 日期
  • date.toLocaleTimeString(): 时间

示例如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>test title</title></head>
<body><script>// 获取当前时间const nowDate = new Date()console.log(nowDate)  // Fri Dec 01 2023 17:23:08 GMT+0800 (中国标准时间)// 获取指定时间const date2 = new Date('2023-12-1 17:23:06')console.log(date2)  // Fri Dec 01 2023 17:23:06 GMT+0800 (中国标准时间)// 获取月份console.log(nowDate.getMonth() + 1)  // 12// 时间格式传唤console.log(nowDate.toLocaleString())   // 2023/12/1 17:23:08console.log(nowDate.toLocaleDateString())  // 2023/12/1console.log(nowDate.toLocaleTimeString())  // 17:23:08</script>
</body>
</html>

时间戳
指1970年01月01日00时00分00秒起至指定时间的毫秒数。有三种方式获取时间戳,如下所示:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>test title</title></head>
<body><script>// 方式一: 使用getTime()方法const date = new Date()console.log(date.getTime())// 方式二: 使用+new Date()console.log(+new Date())// 方式三: 使用Date.now()console.log(Date.now());</script>
</body>
</html>

2. DOM节点操作

2.1 查找节点

  • 查找父节点:通过子元素.parentNode,找最近一级的父节点,找不到返回null
  • 查找子节点
    • 通过父元素.childNodes,获得所有子节点,包括文本节点(空格、换行)、注释节点等
    • 通过父元素.children,仅获得所有元素子节点,返回一个伪数组
  • 查找兄弟节点
    - 通过元素.previousElementSibling,获取上一个兄弟节点
    - 通过元素.nextElementSibling,获取下一个兄弟节点

示例如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>test title</title></head>
<body><ul><li>1</li><li>2</li><li>3</li></ul><script>// 查找父节点const li2 = document.querySelector('ul li:nth-child(2)')const ul = li2.parentNodeconsole.log(ul)// 查找子节点console.log(ul.children)// 查找兄弟节点console.log(li2.previousElementSibling.innerHTML)console.log(li2.nextElementSibling.innerHTML)</script>
</body>
</html>

控制台打印的消息如下:
查找节点效果

2.2 增加节点

  1. 先创建一个新的节点(例如: document.createElement('div'))
  2. 然后把创建的新的节点放入到指定的元素内部
    • 方式一: 插入到父元素的最后一个子元素: 父元素.appendChild(要插入的新元素)
    • 方式二: 插入到父元素中某个子元素的前面: 父元素.insertBefore(要插入的新元素, 放到哪个元素的前面)。如果放到哪个元素的前面获取不到,则以appendChild方式插入

示例:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>test title</title></head>
<body><ul><li>中间</li></ul><script>const ul = document.querySelector('ul')const lastLi = document.createElement('li')lastLi.innerHTML = '最后'ul.appendChild(lastLi)const firstLi = document.createElement('li')firstLi.innerHTML = '第一'ul.insertBefore(firstLi, ul.children[0])</script>
</body>
</html>

页面效果如下:
增加节点效果

2.3 克隆节点

cloneNode会克隆出一个跟原标签一样的元素。元素.cloneNode(布尔值),布尔值默认为false

  • 若为true,则代表克隆时会包含后代节点、文本节点、属性节点
  • 若为false,则代表克隆时不包含后代节点、文本节点,但包含属性节点

示例:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>test title</title></head>
<body><ul><li>1</li></ul><script>const ul = document.querySelector('ul')const li1 = ul.children[0].cloneNode(true)ul.appendChild(li1)</script>
</body>
</html>

页面效果如下:
克隆节点效果

2.4 删除节点

  • 删除元素必须通过父元素删除,父元素.removeChild(要删除的元素)。如不存在父子关系则删除不成功
  • 隐藏节点(display:none)只是将节点隐藏,但还是存在的

示例:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>test title</title></head>
<body><ul><li>我要被删除了</li></ul><script>const ul = document.querySelector('ul')ul.removeChild(ul.children[0])  // 删除完后,页面为空白</script>
</body>
</html>

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

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

相关文章

logback-spring.xml 小记

为什么不用logback.xml 名字 加载顺序:logback.xml>application.yml>logback-spring.xml 使用xml中使用到配置文件属性时,就会报错 为什么logback中记录不到运行时报错 logback获取不到堆栈错误 解决办法:在全局错误出使用log.error()指定输出 为什么打印不出来myba…

五大API接口:提升你的应用性能与用户体验

引言&#xff1a; 简述API接口的重要性引入API接口对于提升应用性能和用户体验的贡献 API接口简介&#xff1a; 定义&#xff1a;解释什么是API接口作用&#xff1a;概述API接口在软件开发中的作用 1. 数据访问API 功能描述&#xff1a;提供快速、安全的数据存取功能提升性…

“首秀”欧洲杯,海信冰箱欧洲市占率居国产品牌首位

随着欧洲杯的火热开赛&#xff0c;挑灯夜战、观看球赛的时刻已经来临。此时&#xff0c;你需要何物相伴&#xff1f;是打开冰箱&#xff0c;取出真空腌制的食材&#xff0c;亲手烹饪一场观赛盛宴&#xff1f;还是取出极致保鲜的荔枝、樱桃&#xff0c;一边观赛一边品味&#xf…

部署yum仓库

目录 安装软件包 yum 配置文件 缓存功能操作步骤 创建并配置本地仓库文件 yum相关命令 yum install __ yum repolist yum list __ yum info __ yum search __ yum whatprovides __ yum remove __ yum -y update __ yum history yum grouplist yum groupinstall…

如何使用Vue3和ApexCharts轻松创建交互式图表

本文由ScriptEcho平台提供技术支持 项目地址&#xff1a;传送门 基于Vue3的ApexCharts动态图表展示 应用场景 本代码段适用于在Vue3应用中使用ApexCharts库创建交互式、可视化的图表。这些图表可以用于展示各种数据&#xff0c;例如销售额、支出、利润等&#xff0c;从而帮…

Microsoft Store打不开解决办法

//卸载Microsoft Store Get-AppxPackage -alluser WindowsStore | Remove-AppxPackage //重装 Get-AppxPackage -AllUsers Microsoft.WindowsStore* | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register “ ( ( (_.InstallLocation)\AppXManifest.xml”}

ARP攻击和DNS攻击有什么区别

ARP攻击和DNS攻击的明显区别 一、定义与原理 ARP攻击&#xff1a; 定义&#xff1a;ARP攻击&#xff08;Address Resolution Protocol Attack&#xff09;是局域网最常见的一种攻击方式&#xff0c;其基本原理是通过伪造ARP数据包来窃取合法用户的通信数据&#xff0c;造成影…

006 spring事务支持

文章目录 事务回顾事务介绍事务并发问题(隔离性导致)事务隔离级别 Spring框架事务管理相关接口Spring框架事务管理的分类编程式事务管理(了解)声明式事务管理(重点) 事务管理之XML方式业务层持久层单元测试代码配置事务管理的AOP 事务管理之混合方式事务管理之基于AspectJ的纯注…

不重新安装Anaconda找回不见的Anaconda Prompt

找回Anaconda Prompt只需三步 系统&#xff1a;win11 x641.cd Anaconda的安装目录2. Anaconda Prompt又回来了 系统&#xff1a;win11 x64 1.cd Anaconda的安装目录 winR 输入cmd 进入命令行&#xff0c;进入到Anaconda的安装目录 eg&#xff1a;我的Anaconda安装在&#xff…

一个简单的信号发射电路的构建

在基本的信号发射电路中&#xff0c;线圈&#xff08;电感器&#xff09;和电阻的组合可以产生振荡信号&#xff0c;而天线&#xff08;通常通过线圈&#xff09;用于发射信号。 LC振荡电路&#xff1a; **线圈&#xff08;L1&#xff09;和电容器&#xff08;C&#xff09;**串…

Ubuntu24多版本python解释器使用

1.前言 已给树莓派5安装了Ubuntu24.04&#xff0c;带有python3.12.3&#xff0c;现在用视觉需要用到3.11版本的python解释器 2.实操过程 主要是对用到的命令进行备份&#xff0c;方便后面查询 2.1 安装python3.11 sudo add-apt-repository ppa:deadsnakes/ppa sudo apt-ge…

App分发苹果ios内测ipa应用文件签名分发平台剖析

一、 应用分发下载速度为何快速 App内测签名分发平台能够提供快速的应用分发下载速度&#xff0c;主要有以下几个原因&#xff1a;提供的服务器带宽资源大。这些平台通常采用高性能服务器&#xff0c;并且拥有强大的带宽资源&#xff0c;能够支持高并发下载。 采用分布式技术…

MySQL:emoj表情录入

在实际开发中有时候会获取第三方授权头像的时候&#xff0c;头像包含了emoj表情&#xff0c;但是存到数据库出现乱码的情况&#xff0c;那这种情况我们如何处理呢&#xff1f; 解决方法&#xff1a; [client] default-character-set utf8mb4 [mysql] default-character-set…

底价竞拍成功,兴业法拍网何淑帅助高先生圆梦三居~

今日我们荣幸地向大家宣告一条喜讯。三部法拍经理何淑帅以其卓越的能力与竭诚的服务态度&#xff0c;成功助力高先生起拍价成交顺义裕龙六区的一套三居室。 高先生经朋友介绍与三部经理何淑帅结缘&#xff0c;他本身对该小区有所知晓&#xff0c;且正好在周边工作&#xff0c;何…

2.什么是计算机程序

什么是计算机程序? 计算机程序是为了告诉计算机"做某件事或解决某个问题"而用"计算机语言编写的命令集合(语句) 只要让计算机执行这个程序,计算机就会自动地、有条不紊地进行工作,计算机的一切操作都是由程序控制的,离开程序,计算机将一事无成 现实生活中你如…

JVM 基本组成

一、为什么要学习 JVM &#xff1f; 1. “ ⾯试造⽕箭&#xff0c;⼯作拧螺丝” &#xff0c; JVM 属于⾯试官特别喜欢提问的知识点&#xff1b; 2. 未来在⼯作场景中&#xff0c;也许你会遇到以下场景&#xff1a; 线上系统突然宕机&#xff0c;系统⽆法访问&#xff0c;甚⾄直…

在向量数据库中存储多模态数据,通过文字搜索图片

在向量数据中存储多模态数据&#xff0c;通过文字搜索图片&#xff0c;Chroma 支持文字和图片&#xff0c;通过 OpenClip 模型对文字以及图片做 Embedding。本文通过 Chroma 实现一个文字搜索图片的功能。 OpenClip CLIP&#xff08;Contrastive Language-Image Pretraining&…

Ps:脚本与动作

有三种脚本语言可用于编写 Photoshop 脚本&#xff1a;AppleScript&#xff08;macOS&#xff09;、JavaScript 和 VBScript&#xff08;Windows&#xff09;。 Photoshop 脚本文件默认文件夹 Win&#xff1a;C:\Program Files\Adobe\Adobe Photoshop 2024\Presets\Scripts Mac…

代码随想录-Day35

134. 加油站 在一条环路上有 n 个加油站&#xff0c;其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车&#xff0c;从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发&#xff0c;开始时油箱为空。 给定两个整数数组 …

Java阻塞队列:DelayQueue

Java阻塞队列&#xff1a;DelayQueue 在Java的并发编程中&#xff0c;阻塞队列是一种非常有用的数据结构&#xff0c;它不仅提供了线程安全的队列操作&#xff0c;还在必要时会自动阻塞获取操作&#xff0c;直到队列变得不为空。本文将重点介绍一种特殊的阻塞队列——DelayQue…