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);

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

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

相关文章

【C语言进阶(8)】自定义数据类型1:结构体

文章目录 前言Ⅰ 结构体的声明和定义⒈结构体声明⒉结构体定义⒊特殊的声明 Ⅱ 结构体的自引用Ⅲ 结构体初始化Ⅳ 访问结构体成员Ⅴ 结构体内存对齐⒈结构体内存对齐规则⒉分析结构体大小⒊嵌套结构体内存大小⒋内存对齐存在的原因 Ⅵ 修改默认对齐数Ⅶ 结构体传参 前言 C 语言…

js toFixed()方法的坑

最近发现JS当中toFixed()方法存在一些问题&#xff0c;采用原生的Number对象的原型对象上的toFixed()方法时&#xff0c;规则并不是所谓的“四舍五入”或者是“四舍六入五成双”&#xff0c;以谷歌浏览器为例: alert(1.5451.toFixed(2));//输出 1.55 alert(1.545.toFixed(2));…

围棋与育种

最近因为娃子报名了围棋课&#xff0c;我本着交一次课学两个人的态度&#xff0c;入门围棋&#xff0c;买了些书&#xff0c;听了些课&#xff0c;有所得。学了两个多月&#xff0c;现在6级水平&#xff0c;了解了基本的攻杀技巧&#xff0c;会判断输赢。 下面截图是今天的一盘…

Mr. Cappuccino的第64杯咖啡——Spring循环依赖问题

Spring循环依赖问题 什么是循环依赖问题示例项目结构项目代码运行结果 Async注解导致的问题使用Lazy注解解决Async注解导致的问题开启Aop使用代理对象示例项目结构项目代码运行结果 Spring是如何解决循环依赖问题的原理源码解读 什么情况下Spring无法解决循环依赖问题 什么是循…

IDEA配置热启动

1.背景 开发过程中&#xff0c;当写完一个功能我们需要运行应用程序测试&#xff0c;可能这个小功能中存在多个小bug&#xff0c;我们需要改正后重启服务器&#xff0c;这无形之中拖慢了开发的速度增加了开发时间&#xff0c;SpringBoot提供了spring-boot-devtools&#xff0c;…

MyBatis分页查询与特殊字符处理

目录 目录 一、引言 1.1 简介Mybatis 1.2分页查询的重要性 1.3MyBatis特殊字符处理的挑战 挑战1&#xff1a;SQL注入漏洞 挑战2&#xff1a;查询结果异常 挑战3&#xff1a;数据完整性问题 挑战4&#xff1a;跨平台兼容性 挑战5&#xff1a;用户体验 如何应对挑战 二…

Flask-Sockets和Flask-Login联合实现websocket的登录认证功能

flask_login 提供了一个方便的方式来管理用户会话。当你在 Flask 的 HTTP 视图中使用它时&#xff0c;你可以简单地使用 login_required 装饰器来确保用户已登录。 但是&#xff0c;flask_sockets 并没有直接与 flask_login 集成。如果你想在建立 WebSocket 连接时检查用户是否…

4.14 HTTPS 中 TLS 和 TCP 能同时握手吗?

目录 实现HTTPS中TLS和TCP同时握手的前提&#xff1a; 什么是TCP Fast Open&#xff1f; TLS v1.3 TCP Fast Open TLSv1.3 HTTPS都是基于TCP传输协议实现的&#xff0c;得先建立完可靠得TCP连接才能做TLS握手的事情。 实现HTTPS中TLS和TCP同时握手的前提&#xff1a; 1、…

uniapp国际化npm install vue-i18n报错

npm install vue-i18n //npmyarn add vue-i18n //yarn在vue2环境下&#xff0c;默认安装 npm install vue-i18n 的版本是 vue-i18n9.1.9&#xff0c;所以报错。 npm view vue-i18n versions --json 用以上命令查看版本&#xff1a; vue2建议5.0版本 npm install vue-i1…

nacos适配SqlServer、Oracle

继上文《nacos适配达梦、瀚高、人大金仓数据库及部分源码探究 》后补充nacos适配SqlServer、Oracle的贴码&#xff0c;主要区别是SqlServer、Oracle的分页SQL有点不一样&#xff0c;做个记录&#xff1b; SqlServer的分页有三种实现方式&#xff1a;offset /fetch next、利用ma…

JAVA-编程基础-10-集合

Lison <dreamlison163.com>, v1.0.0, 2023.04.23 JAVA-编程基础-10-集合 文章目录 JAVA-编程基础-10-集合List、Set、Map、队列全面解析ListArrayList创建ArrayList 向ArrayList中添加元素 List、Set、Map、队列全面解析 Java 集合框架可以分为两条大的支线&#xff1a;…

uniapp 项目实践总结(一)uniapp 框架知识总结

导语&#xff1a;最近开发了一个基于 uniapp 框架的项目&#xff0c;有一些感触和体会&#xff0c;所以想记录以下一些技术和经验&#xff0c;在这里做一个系列总结&#xff0c;算是对自己做一个交代吧。 目录 简介全局文件全局组件常用 API条件编译插件开发 简介 uniapp 是…

【C++】开源:Box2D动力学库配置与使用

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍Box2D动力学库配置与使用。 无专精则不能成&#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c…

Zenity 简介

什么使 Zenity Zenity 是一个开源的命令行工具&#xff0c;它提供了一种简单的方式来创建图形化的用户界面&#xff08;GUI&#xff09;对话框&#xff0c;以与用户进行交互。它基于 GTK 库&#xff0c;可以在 Linux 和其他 UNIX-like 系统上使用。 Zenity 可以通过命令行或脚…

Unity Alembic闪烁问题

最近在做项目时&#xff0c;发现Clo3D导出的服装abc动画&#xff0c;导入到Unity中后(已提前导入Alembic插件)&#xff0c;运行时屏幕会闪烁(变黑)。 经过几轮测试&#xff0c;发现是切线的问题。解决办法很简单。将abc文件上的Tangents属性值改为None即可。

【自适应稀疏度量方法和RQAM】疏度测量、RQAM特征、AWSPT和基于AWSPT的稀疏度测量研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

“之江创客”走进美洲 助推电商国际合作交流

“之江创客” 2023全球电子商务 创业创新大赛 美洲赛区决赛 当地时间8月24日下午&#xff0c;“之江创客”2023全球电子商务创业创新大赛美洲赛区决赛在墨西哥蒙特雷科技大学墨西哥城校区圆满落幕。浙江省商务厅党组成员、副厅长张钱江作视频致辞&#xff0c;蒙特雷科技大学…

深度对话:从底层看Sui设计理念及网络规模扩展

近日&#xff0c;我们采访了George Danezis以了解Sui的交易处理系统如何促成高性能网络。他是Mysten Labs的联合创始人和首席科学家&#xff08;Sui的最初贡献者&#xff09;&#xff0c;也是伦敦大学学院&#xff08;University College London&#xff0c;UCL&#xff09;安全…

849. 到最近的人的最大距离(JavaScript)849. Maximize Distance to Closest Person

给你一个数组 seats 表示一排座位&#xff0c;其中 seats[i] 1 代表有人坐在第 i 个座位上&#xff0c;seats[i] 0 代表座位 i 上是空的&#xff08;下标从 0 开始&#xff09;。 至少有一个空座位&#xff0c;且至少有一人已经坐在座位上。 亚历克斯希望坐在一个能够使他与…

Qt xml解析之QXmlStreamReader

文章目录 背景QXmlStreamReader简单介绍使用QXmlStreamReader添加头文件<QXmlStreamReader>toString()toInt()完整代码 背景 项目中遇到需要解析某个方法返回的xml字符串&#xff0c;奈何C/C中没有原生的方法可供调用&#xff0c;只能使用第三方库&#xff0c;搜了一圈资…