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

JavaScript-DOM查询

获取元素节点

获取元素节点的子节点

元素节点的属性

节点的修改


        JavaScript中的DOM(文档对象模型)是一种编程接口,它允许JavaScript与HTML文档交互。创建DOM查询,可以使用多种方法.

获取元素节点

1. getElementById()

– 通过id属性获取一个元素节点对象

var element = document.getElementById("elementID");

2. getElementsByTagName()

– 通过标签名获取一组元素节点对象

var elements = document.getElementsByTagName("tagname");

3. getElementsByName()

– 通过name属性获取一组元素节点对象

let nameInputs = document.getElementsByName('name');

获取元素节点的子节点

1. getElementsByTagName()

– 该方法返回指定标签名的后代节点列表,可以是单个元素或多个元素。例如,以下代码会返回所有的 p 元素

<body><h1>标题</h1><p>这是段落1</p><p>这是段落2</p><ul><li>列表项1</li><li>列表项2</li></ul>
</body>
const paragraphs = document.getElementsByTagName('p');
console.log(paragraphs); // NodeList(2) [ <p>这是段落1</p>, <p>这是段落2</p> ]

2. childNodes

– 该属性返回当前节点包含的所有子节点。包括元素节点、文本节点、注释节点等。例如,以下代码会返回 body 元素的所有子节点

<body><h1>标题</h1><p>这是段落</p>
</body>
const bodyNode = document.body;
const childNodes = bodyNode.childNodes;
console.log(childNodes); // NodeList(3) [ #text "", <h1>标题</h1>, #text "" ]

3. firstChild

– 该属性返回当前节点的第一个子节点。如果节点没有子节点,则返回 null。例如,以下代码会返回 body 元素的第一个子节点

<body><h1>标题</h1><p>这是段落</p>
</body>
const bodyNode = document.body;
const firstChild = bodyNode.firstChild;
console.log(firstChild); // #text ""

4. lastChild

– 该属性返回当前节点的最后一个子节点。如果节点没有子节点,则返回 null。例如,以下代码会返回 body 元素的最后一个子节点

<body><h1>标题</h1><p>这是段落</p>
</body>
const bodyNode = document.body;
const lastChild = bodyNode.lastChild;
console.log(lastChild); // #text ""

元素节点的属性

• 获取,元素对象.属性名,元素节点的属性指的是元素节点对象(如div、p、input等)所具有的属性。常见的元素节点属性有value、id、className等。其中,value属性对应的是输入框、文本框等表单元素的值;id属性对应的是元素的唯一身份标识符;className属性对应的是元素的CSS类名。

例:

element.value

element.id

element.className

<input type="text" id="username" class="inputStyle" value="John Doe">
<script>const inputEle = document.getElementById("username");console.log(inputEle.value); // 输出:John Doeconsole.log(inputEle.id); // 输出:usernameconsole.log(inputEle.className); // 输出:inputStyle
</script>

• 设置,元素对象.属性名=新的值

例:element.value = “hello”

element.id = “id01”

element.className = “newClass”

//首先获取了一个id为“username”的输入框,然后使用该元素对象的属性获取了其value、id、className属性的值,并输出到控制台中。接着,将该输入框的value、id、className属性的值分别设置成了“Jane Doe”、“userid”、“newInputStyle”,最后再次输出该输入框的标签<input type="text" id="username" class="inputStyle" value="John Doe">
<script>const inputEle = document.getElementById("username");inputEle.value = "Jane Doe";inputEle.id = "userid";inputEle.className = "newInputStyle";console.log(inputEle); // 输出<input type="text" id="userid" class="newInputStyle" value="Jane Doe">
</script>

• nodeValue

– 文本节点是指节点包含文本内容的节点,可以通过nodeValue属性获取和设置文本节点的内容。例如,以下代码创建了一个文本节点并获取了它的内容

var text = document.createTextNode("Hello world!"); //创建文本节点
var content = text.nodeValue; //获取文本节点的内容
console.log(content); //输出:"Hello world!"
text.nodeValue = "Goodbye world!"; //设置文本节点的内容
console.log(text.nodeValue); //输出:"Goodbye world!"

• innerHTML

– 元素节点是指节点包含开始和结束标签的节点,可以通过innerHTML属性获取和设置元素节点内部的html代码。例如,以下代码获取了一个div元素节点内部的html代码,并将其修改为一个带有链接和图片的html代码

var div = document.getElementById("myDiv"); //获取div元素节点
var content = div.innerHTML; //获取div元素节点内部的html代码
console.log(content); //输出原始html代码
div.innerHTML = '<a href="https://www.google.com/">Google</a><br><img src="image.jpg">'; //设置新的html代码
console.log(div.innerHTML); //输出新的html代码

节点的修改

• 创建节点

– document.createElement(标签名)

// 创建一个新的段落元素节点
let p = document.createElement('p');// 添加一些文本内容
p.textContent = '这里是一个新创建的段落。';// 将该段落添加到文档中的body元素中
document.body.appendChild(p);

• 删除节点

– 父节点.removeChild(子节点)

// 获取要删除的节点
let p = document.querySelector('p');// 获取其父节点并删除该子节点
p.parentNode.removeChild(p);

• 替换节点

– 父节点.replaceChild(新节点 , 旧节点)

// 获取要被替换的旧节点
let oldP = document.querySelector('p');// 创建一个新的段落元素节点
let newP = document.createElement('p');
newP.textContent = '这是新的段落。';// 获取其父节点并用新节点替换旧节点
oldP.parentNode.replaceChild(newP, oldP);

• 插入节点

– 父节点.appendChild(子节点)

// 创建一个新的段落元素节点
let p = document.createElement('p');
p.textContent = '这是一个新的段落。';// 获取将要添加新节点的父节点
let parent = document.querySelector('#parent');// 在父节点的末尾添加新节点
parent.appendChild(p);

– 父节点.insertBefore(新节点 , 旧节点)

// 创建一个新的段落元素节点
let p = document.createElement('p');
p.textContent = '这是一个新的段落。';// 获取将要添加新节点的父节点
let parent = document.querySelector('#parent');// 获取将要插入的位置的子节点
let referenceNode = parent.querySelector('div');// 将新节点插入到该位置之前
parent.insertBefore(p, referenceNode);

相关文章:

JavaScript-DOM查询

获取元素节点 获取元素节点的子节点 元素节点的属性 节点的修改 JavaScript中的DOM&#xff08;文档对象模型&#xff09;是一种编程接口&#xff0c;它允许JavaScript与HTML文档交互。创建DOM查询&#xff0c;可以使用多种方法. 获取元素节点 1. getElementById() – 通…...

大数据-玩转数据-Flink 水印

一、Flink 中的水印 在Flink的流式操作中, 会涉及不同的时间概念&#xff1a; 1.1 处理时间 是指的执行操作的各个设备的时间&#xff0c;对于运行在处理时间上的流程序, 所有的基于时间的操作(比如时间窗口)都是使用的设备时钟。比如, 一个长度为1个小时的窗口将会包含设备…...

【Apollo】阿波罗自动驾驶系统:驶向未来的智能出行(含源码安装)

前言 Apollo (阿波罗)是一个开放的、完整的、安全的平台&#xff0c;将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统&#xff0c;快速搭建一套属于自己的自动驾驶系统。 开放能力、共享资源、加速创新、持续共赢是 Apollo 开放平台的口号。百度把自己所拥有的强大、…...

网络-Netty

how pipeline.addLast(ChannelHandler)...

如何使用vue-smooth-dnd

Vue Smooth DnD是一个基于Vue的平滑易用的拖放库。它提供了简单易用的API和可自定义的样式。 要使用Vue Smooth DnD&#xff0c;可以按照以下步骤进行操作&#xff1a; 安装Vue Smooth DnD npm install vue-smooth-dnd --save 在组件中引入Vue Smooth DnD import VueSmoot…...

为AWS认证做好准备:一份全面的备考指南

随着云计算的快速发展&#xff0c;越来越多的专业人士选择获取AWS&#xff08;亚马逊网络服务&#xff09;认证。这个认证不仅可以证明你对AWS的理解和专业技能&#xff0c;还有助于你在云计算领域获得更好的工作机会。 以下是一份全面的备考指南&#xff0c;帮助你为AWS认证做…...

尚硅谷SpringMVC

九、HttpMessageConverter...

django的简易的图书管理系统jsp书店进销存源代码MySQL

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 django的简易的图书管理系统 系统有1权限&#xff1a…...

力扣125. 验证回文串

125. 验证回文串 如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后&#xff0c;短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。 字母和数字都属于字母数字字符。 给你一个字符串 s&#xff0c;如果它是 回文串 &#xff0c;返回 true &…...

用WebStorm创建Mock数据

WebStorm是一款强大的集成式开发环境&#xff0c;它集成了许多实用的功能&#xff0c;包括Mock数据的创建。 下面是用WebStorm创建Mock数据的步骤&#xff1a; 打开WebStorm&#xff0c;选择一个项目或新建一个项目&#xff1b;在项目中创建一个名为“mock”的文件夹&#xf…...

Python钢筋混凝土结构计算.pdf-已知弯矩确定混凝土梁截面尺寸

计算原理 确定混凝土梁截面的合理尺寸通常需要考虑弯矩、受力要求和约束条件等多个因素。以下是一种常见的计算公式&#xff0c;用于基于已知弯矩确定混凝土梁截面的合理尺寸&#xff1a; 请注意&#xff0c;以上公式仅提供了一种常见的计算方法&#xff0c;并且具体的规范和设…...

【正点原子STM32连载】第二十四章 高级定时器PWM输入模式实验 摘自【正点原子】APM32F407最小系统板使用指南

1&#xff09;实验平台&#xff1a;正点原子stm32f103战舰开发板V4 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html# 第二…...

Adapter Tuning Overview:在CV,NLP,多模态领域的代表性工作

文章目录 Delta TuningAdapter Tuning in CVAdapter Tuning in NLP Delta Tuning Adapter Tuning in CV 题目: Learning multiple visual domains with residual adapters 机构&#xff1a;牛津VGG组 论文: https://arxiv.org/pdf/1705.08045.pdf Adapter Tuning in NLP …...

velocity一个基于Java的模板引擎

参考&#xff1a;https://blog.csdn.net/m0_51517236/article/details/126175283 http://www.51gjie.com/javaweb/896.html...

异步servlet

我们日常使用的 SpringMVC&#xff0c;基本上都不是异步 Servlet&#xff0c;而学习 WebFlux&#xff0c;异步 Servlet 是基础&#xff0c;WebFlux。 1.什么是异步 Servlet 先来说说什么是非异步 Servlet。 在 Servlet3.0 之前&#xff0c;Servlet 采用 Thread-Per-Request 的方…...

煤矿皮带运输智能监控算法 opencv

煤矿皮带运输智能监控算法通过opencvpython深度学习算法网络模型&#xff0c;煤矿皮带运输智能监控算法实时监测皮带运输过程中的各种异常情况&#xff0c;如跑偏、撕裂、堆料异常等&#xff0c;一旦检测到异常情况&#xff0c;立即发出告警并采取相应的措施&#xff0c;以保障…...

Docker搭建elasticsearch+kibana测试

最近需要做大数据画像&#xff0c;所以先简单搭建一个eskibana学习使用&#xff0c;记录一下搭建过程和遇到的问题以及解决办法 1.拉取es和kibana镜像 在拉取镜像之前先搜索一下 elasticsearch发现是存在elasticsearch镜像的&#xff0c;我一般习惯性拉取最新镜像&#xff0c…...

QT(C++)-QTreeview节点折叠与展开

文章目录 1、前言2、QTreeview全部展开与折叠3、QTreeview某个节点展开与折叠3.1 节点折叠与展开的信号与槽3.2 槽函数的实现3.3 某个节点展开与折叠 1、前言 最近要用QT开发项目&#xff0c;对QT不是很熟&#xff0c;就根据网上的查到的知识和自己的摸索&#xff0c;将一些经…...

项目 - 后端技术栈转型方案

前言 某开发项目的后端技术栈比较老了&#xff0c;现在想换到新的技术栈上。使用更好的模式、设计思想、更合理的架构等&#xff0c;为未来的需求迭代做铺垫。怎么办呢&#xff1f;假设系统目前在线上运行着的&#xff0c;直接整体换的话耗时太久&#xff0c;且中间还有新的需…...

Oracle权限语句

授予权限&#xff1a;grant 权限 to 用户名; 撤销权限&#xff1a;revoke 权限 from 用户名; 常用&#xff1a; 创建用户&#xff1a; create user zhangsan identified by zhangsan; grant connect, resource to zhangsan; //授权zhangsan用户连接权限 grant create …...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了&#xff0c;就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...

比较数据迁移后MySQL数据库和OceanBase数据仓库中的表

设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...