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…

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

随着欧洲杯的火热开赛&#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;从而帮…

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…

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

今日我们荣幸地向大家宣告一条喜讯。三部法拍经理何淑帅以其卓越的能力与竭诚的服务态度&#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…

递归与回溯 || 排列问题

目录 前言&#xff1a; 全排列 题解&#xff1a; 全排列 II 题解&#xff1a; 子集 题解&#xff1a; 组合 题解&#xff1a; 组合总和 题解&#xff1a; 电话号码的字母组合 题解&#xff1a; 字母大小写全排列 题解&#xff1a; 优美的排列 题解&#xff1a;…

AI虚拟数字人上线需要办理哪些资质?

近年来&#xff0c;随着AI 技术快速发展&#xff0c;虚拟数字人行业也进入了新的发展阶段。AI 技术可覆盖虚拟数字人的建模、视频生成、驱动等全流程&#xff0c;一方面使虚拟数字人的制作成本降低、制作周期缩短&#xff0c;另一方面&#xff0c;多模态 AI 技术使得虚拟数字人…

[面试题]缓存

[面试题]Java【基础】[面试题]Java【虚拟机】[面试题]Java【并发】[面试题]Java【集合】[面试题]MySQL[面试题]Maven[面试题]Spring Boot[面试题]Spring Cloud[面试题]Spring MVC[面试题]Spring[面试题]MyBatis[面试题]Nginx[面试题]缓存[面试题]Redis 什么是缓存&#xff1f;…

KVM虚拟化基础

虚拟化基础与分类 x86 CPU特权级别设为四个Ring&#xff1a;Kernel Mode运行在Ring 0、User Mode运行在Ring 3&#xff1b; 非硬件辅助虚拟化&#xff08;一型&#xff09; Hypervisor运行在Ring 0&#xff1b; Guest OS不做修改&#xff0c;以为自己运行在Ring 0上&#xff0…

OpenAPI Typescript Codegen 的基本使用

下载 axios npm install axios OpenAPI Typescript Codegen 官网&#xff1a;https://github.com/ferdikoomen/openapi-typescript-codegen 安装 OpenAPI Typescript Codegen npm install openapi-typescript-codegen --save-dev–input&#xff1a;指定接口文档的路径、url …