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:08
    console.log(nowDate.toLocaleDateString())  // 2023/12/1
    console.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.parentNode
    console.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>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

设计可持续数据中心的基本要素

在当今的商业环境中&#xff0c;数据处理中心&#xff08;DPC&#xff09;的重要性日益凸显&#xff0c;它们为海量数据提供稳定的存储、处理和传输服务。随着数据处理中心重要性的不断提升&#xff0c;构建一个具有弹性和可靠性的基础设施变得至关重要。本文将深入探讨构建可持…

Qt做群控系统

群控系统顾名思义&#xff0c;一台设备控制多台机器。首先我们来创造下界面。我们通过QT UI设计界面。设计界面如下&#xff1a; 登录界面&#xff1a; 登录界面分为两种角色&#xff0c;一种是管理员&#xff0c;另一种是超级管理员。两种用户的主界面是不同的。通过选中记住…

获取泛型,泛型擦除,TypeReference 原理分析

说明 author blog.jellyfishmix.com / JellyfishMIX - githubLICENSE GPL-2.0 获取泛型&#xff0c;泛型擦除 下图中示例代码是一个工具类用于生成 csv 文件&#xff0c;需要拿到数据的类型&#xff0c;使用反射感知数据类型的字段&#xff0c;来填充表字段名。可以看到泛型…

LabVIEW开发为什么沟通需求非常重要

在LabVIEW开发项目中&#xff0c;需求沟通是项目成功的基石。以下是需求沟通的重要性及其原因&#xff1a; 明确项目目标&#xff1a; 定义清晰的目标&#xff1a;通过与用户的沟通&#xff0c;可以明确项目的目标和范围&#xff0c;确保开发团队理解用户的实际需求&#xff0c…

JavaFX DatePicker

JavaFX DatePicker允许从给定日历中选择一天。DatePicker控件包含一个带有日期字段和日期选择器的组合框。JavaFX DatePicker控件使用JDK8日期时间API。 import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.DatePicker; import j…

SpringBoot的事务注解

SpringBoot的事务注解 在Spring Boot应用中&#xff0c;事务管理是一个关键的部分&#xff0c;尤其是当涉及到数据库操作时。Spring Boot提供了强大的事务管理支持&#xff0c;使得开发人员可以通过简单的注解来控制事务的边界和行为。本文将介绍如何在Spring Boot中使用事务注…

Go - 4.数组和切片

目录 一.引言 二.定义 1.基础定义 2.引申理解 三.实战 1.估算切片的长度与容量 2.切片的切片长度与容量 四.拓展 1.估算切片容量的增长 2.切片底层数组的替换 五.总结 一.引言 本文主要讨论 Go 语言的数组 array 类型和切片 slice 类型。主要从二者的使用方法&…

C++ 65 之 模版的局限性

#include <iostream> #include <cstring> using namespace std;class Students05{ public:string m_name;int m_age;Students05(string name, int age){this->m_name name;this->m_name age;} };// 两个值进行对比的函数 template<typename T> bool …

PCIe学习——重点提纲

PCIe学习-重点提纲 基础知识 计算机架构基础总线系统概述PCI vs PCI-X vs PCIe PCIe 概述 PCIe 的发展历史PCIe 与其他总线的对比PCIe 的优势和应用场景 PCIe 体系结构 PCIe 分层模型 物理层&#xff08;Physical Layer&#xff09;数据链路层&#xff08;Data Link Layer&…

在 KubeSphere 上快速安装和使用 KDP 云原生数据平台

作者简介&#xff1a;金津&#xff0c;智领云高级研发经理&#xff0c;华中科技大学计算机系硕士。加入智领云 8 余年&#xff0c;长期从事云原生、容器化编排领域研发工作&#xff0c;主导了智领云自研的 BDOS 应用云平台、云原生大数据平台 KDP 等产品的开发&#xff0c;并在…

[Java基本语法] 常量变量与运算符

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏:&#x1f355; Collection与数据结构 (92平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 &#x1f9c0;线程与…

解决Java项目运行时错误:“Command line is too long”

在开发Java应用的过程中&#xff0c;你可能偶尔会遇到“Error running ‘Application’: Command line is too long”的问题。这是因为Java虚拟机&#xff08;JVM&#xff09;在启动时&#xff0c;如果传递给它的类路径&#xff08;classpath&#xff09;过长&#xff0c;超过了…

1080 MOOC期终成绩

solution 输出合格的学生信息&#xff0c;其中所谓合格需要同时满足 在线编程成绩>200总评成绩>60 总评计算方法为 当期中成绩>期末成绩时&#xff0c;总评期中成绩0.4期末成绩0.6否则&#xff0c;总评期末成绩 通过map建立学号和学生信息间的关联&#xff0c;否则直…

YOLOv10改进 | 注意力篇 | YOLOv10引入Polarized Self-Attention注意力机制

1. Polarized Self-Attention介绍 1.1 摘要:像素级回归可能是细粒度计算机视觉任务中最常见的问题,例如估计关键点热图和分割掩模。 这些回归问题非常具有挑战性,特别是因为它们需要在低计算开销的情况下对高分辨率输入/输出的长期依赖性进行建模,以估计高度非线性的像素语…

AI引领数字安全新纪元,下一代身份基础设施如何帮助企业破局?

近日&#xff0c;Open AI正式发布面向未来人机交互范式的全新大模型GPT-4o&#xff0c;具有文本、语音、图像三种模态的理解力&#xff0c;无疑代表着人工智能技术的又一重大跃进。 人工智能技术领域不断创新和发展&#xff0c;为各行各业带来巨大的生产变革和经济增长的同时&…

RockChip Android12 Settings二级菜单

一:概述 本文将针对Android12 Settings的二级菜单System进行说明。 二:System 1、Activity packages/apps/Settings/AndroidManifest.xml <activityandroid:name=".Settings$SystemDashboardActivity"android:label="@string/header_category_system&quo…

关于Hutool的模块使用说明方法

Hutool包含多个模块&#xff0c;每个模块针对特定的功能需求提供支持&#xff1a;• hutool-aop&#xff1a;JDK动态代理封装&#xff0c;为非IOC环境提供切面支持。• hutool-bloomFilter&#xff1a;布隆过滤器&#xff0c;提供基于Hash算法的实现。• hutool-cache&#xff…

Day 26:2288. 价格减免

Leetcode 2288. 价格减免 句子 是由若干个单词组成的字符串&#xff0c;单词之间用单个空格分隔&#xff0c;其中每个单词可以包含数字、小写字母、和美元符号 ‘$’ 。如果单词的形式为美元符号后跟着一个非负实数&#xff0c;那么这个单词就表示一个 价格 。 例如 “$100”、…

Corrupt JPEG data: 2 extraneous bytes before marker 0xd9

场景 异常&#xff1a;Corrupt JPEG data: 2 extraneous bytes before marker 0xd9 python语言&#xff0c;CV2读图像数据集&#xff0c;训练目标检测模型。在数据集分批送入模型训练过程中&#xff0c;出现大片图片异常情况。 &#xff08;建议直接去看修复图像方法二&…

做一个30点的四面体结构

这个结构有7层&#xff0c;每层有1&#xff0c;1&#xff0c;3&#xff0c;3&#xff0c;6&#xff0c;6&#xff0c;10个点&#xff0c;共30个点。 30个点的坐标是 {0.0,0.0,6.12372435695795}, {0.0,0.0,0.0}, {-2.8868,-5.0,-2.04124145231931}, {-2.8868,5.0,-2.0412414…