JS获取DOM元素的常用方法

通过ID名获取元素(getElementById)

上下文必须是document

必传参数,参数string类型

返回值:是一个元素对象,即当前id的对象(如果页面上没有你所获取的id,则返回null)

document.getElementById('id')
<!DOCTYPE html>
<html><head><meta charset="utf-8"></head><body><div id="div_box"></div></body><script type="text/javascript">console.log(document.getElementById("div_box"));</script>
</html>

通过name属性的值获取元素(getElementsByName)

上下文必须是document
必传参数,参数是获取元素的name属性

返回值:是一个伪数组,页面上没有对应标签的时候返回空数组

不推荐使用,在IE和欧朋浏览器中,通过这个方式会获取到相同的id元素

document.getElementsByName('name')
<!DOCTYPE html>
<html><head><meta charset="utf-8"></head><body><input type="checkbox" name="hobby" value="js">JavaScript</body><script type="text/javascript">console.log(document.getElementsByName("hobby"));</script>
</html>

通过标签名获取元素(getElementsByTagName)

上下文可以是document,也可以是一个元素,元素必须存在

参数是获取元素的标签名属性,不区分大小写

返回值:是一个伪数组,页面上没有对应标签的时候返回空数组

document.getElementsByTagName('p')
<!DOCTYPE html>
<html><head><meta charset="utf-8"></head><body><p></p><div></div></body><script type="text/javascript">console.log(document.getElementsByTagName("div"));console.log(document.getElementsByTagName("p"));</script>
</html>

通过类名获取元素(getElementsByClassName)

上下文可以是document,也可以是一个元素

参数是元素的类名

返回值:是一个伪数组,页面上没有对应标签的时候返回空数组

document.getElementsByClassName("class")
<!DOCTYPE html>
<html><head><meta charset="utf-8"></head><body><div class="class"></div></body><script type="text/javascript">console.log(document.getElementsByClassName("class"));</script>
</html>

获取html标签(document.documentElement)

document.documentElement是专门获取html这个标签的

<!DOCTYPE html>
<html><head><meta charset="utf-8"></head><body></body><script type="text/javascript">console.log(document.documentElement);</script>
</html>

获取body标签(document.body)

document.body是专门获取body这个标签的

<!DOCTYPE html>
<html><head><meta charset="utf-8"></head><body></body><script type="text/javascript">console.log(document.body);</script>
</html>

通过选择器获取一个元素(document.querySelector)

上下文可以是document,也可以是一个元素

参数是选择器,如:div 、.className

返回文档中匹配指定的选择器组的第一个元素

document.querySelector(“选择器”)
<!DOCTYPE html>
<html><head><meta charset="utf-8"></head><body><div class="div_box"></div></body><script type="text/javascript">console.log(document.querySelector(".div_box"));console.log(document.querySelector("div.div_box"));</script>
</html>

通过选择器获取一组元素(document.querySelectorAll)

上下文可以是document,也可以是一个元素

参数是选择器,如:div 、.className

返回文档中匹配指定的选择器组的所有元素

返回值:是一个伪数组

document.querySelectorAll(“选择器”)
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title></head><body><div class="div_box"></div></body><script type="text/javascript">console.log(document.querySelectorAll(".div_box"));console.log(document.querySelectorAll('div.div_box'););</script>
</html>

通过子元素获取父节点(parentNode)

子元素.parentNode

<!DOCTYPE html>
<html><head><meta charset="utf-8"></head><body><div id="parent"><div id="child"></div></div></body><script type="text/javascript">console.log(document.getElementById("child").parentNode);</script>
</html>

通过父元素获取全部子节点(childNodes)

父元素.children

获取到的是一个伪数组,使用的时候需要加上下标,指定子元素

<!DOCTYPE html>
<html><head><meta charset="utf-8"></head><body><div id="parent"><b id="child"></b><b id="child2"></b></div></body><script type="text/javascript">//获取parent下全部的子节点console.log(document.getElementById("parent").childNodes);//获取parent下第一个子节点console.log(document.getElementById("parent").firstChild);//获取parent下最后一个子节点console.log(document.getElementById("parent").lastChile);//获取parent上一个兄弟节点console.log(document.getElementById("parent").previousSibling);//获取parent下一个兄弟节点console.log(document.getElementById("parent").nextSibling);//拷贝一个列表项到另外一个列表console.log(document.getElementById("parent").cloneNode());</script>
</html>

获取元素的属性(getAttribute)

元素对象.getAttribute(“属性”)
//获取元素的高度属性
let height = document.getElementById("div_box").getAttribute("height");

设置元素的属性(setAttribute)

元素对象.setAttribute('属性','属性值')
let height = document.getElementById("div_box").setAttribute("style","width: 100px;height: 100px;");

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

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

相关文章

大数据岗位秋招面试八股文总结(不定时更新)

HIVE面试题 内部表和外部表的区别 未被external修饰的是内部表&#xff0c;被external修饰的是外部表&#xff1b; 内部表数据由Hive自身管理&#xff0c;外部表由HDFS管理&#xff1b; 删除内部表会直接删除元数据及存储数据&#xff0c;删除外部表&#xff0c;仅仅会删除…

校企合作谋发展 合作共赢谱新篇|云畅科技与湖南民族职业学院签订校企合作协议

产业是经济发展的重要引擎&#xff0c;人才是产业发展的重要资源。为积极探索软件人才培育新路径&#xff0c;共商政产学研协同新机制&#xff0c;8月8日&#xff0c;云畅科技与湖南省民族职业学院教育技术学院软件技术专业签订校企合作协议。 会上&#xff0c;学院副校长王志平…

小象课堂在线授课教育系统

此项目包含后端全部代码&#xff0c;前端包括后台和web界面的源码&#xff0c;数据库用的mysql,可当作课设或者毕设&#xff0c;还可写入自己的简历中 web界面展示&#xff1a; 前端后台界面展示&#xff1a; 用户管理 课程管理 内容配置 订单管理 系统管理 系统监控

“深入探索JVM:Java虚拟机背后的奥秘“

标题&#xff1a;深入探索JVM&#xff1a;Java虚拟机背后的奥秘 摘要&#xff1a;本文将深入探索Java虚拟机&#xff08;JVM&#xff09;的内部工作原理和关键组成部分&#xff0c;揭示JVM背后的奥秘。通过对类加载机制、内存管理、垃圾回收、即时编译等方面的详细介绍&#x…

STM32 F103C8T6学习笔记12:红外遥控—红外解码-位带操作

今日学习一下红外遥控的解码使用&#xff0c;红外遥控在日常生活必不可少&#xff0c;它的解码与使用也是学习单片机的一个小过程&#xff0c;我们将通过实践来实现它。 文章提供源码、测试工程下载、测试效果图。 目录 红外遥控原理&#xff1a; 红外遥控特点&#xff1a; …

AI让儿童绘画动起来-程序员带娃必备

项目效果演示 项目描述 很多小朋友在学习绘画的过程中&#xff0c;创作出来很多比较有创意的作品&#xff0c;那么怎么让这些作品&#xff0c;动起来&#xff0c;甚至是和拍摄的视频进行互动呢&#xff0c;今天分享的这个项目&#xff0c;能够完美解决这个问题。 项目地址http:…

爬虫ip带你探索无限可能

各位程序猿大佬们&#xff0c;今天我要为大家带来一个备受关注的话题&#xff1a;爬虫ip的应用范围&#xff01;你可能会好奇&#xff0c;什么是爬虫ip&#xff1f;它在我们的日常生活中有哪些神奇的应用呢&#xff1f;让我们一起来揭开这个神秘的面纱&#xff0c;探索无限可能…

2023-腾讯QQ客户端远程代码执行漏洞

2023-腾讯QQ客户端远程代码执行漏洞 一、漏洞详情二、威胁程度三、影响范围四、漏洞复现五、修复建议 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用…

HDLBits-Verilog学习记录 | Getting Started

Getting Started problem: Build a circuit with no inputs and one output. That output should always drive 1 (or logic high). 答案不唯一&#xff0c;仅共参考&#xff1a; module top_module( output one );// Insert your code hereassign one 1;endmodule相关解释…

js常见题

目录 什么是js&#xff1f;js的特点是什么&#xff1f; js由那三部分组成? 为什么最好把 JS 的 script 标签恰好放在 body 结束标签之前? 什么是语句&#xff1f;什么是表达式&#xff1f;怎么区分&#xff1f; 说明全局变量和局部变量的作用范围和生命周期? js的数据类…

macOS上编译obs-studio

前言 最近基于obs的1个二开程序&#xff0c;需要移植到macOS平台上&#xff0c;由于遇到些问题&#xff0c;本文记录下如何在macOS上配置&编译&运行obs程序完整过程。 下载 首先下载cmake-gui工具&#xff0c;下载CMAKE&#xff0c;选择对应macOS平台的cmake版本&…

大A的造血与吸血能力

由于大A持续不赚钱&#xff0c;玩家们就喜欢挑他的毛病&#xff0c;其中之一就是大A的持续吸血能力。网络上也已有人进行了相关统计&#xff0c;这里我想再次梳理。 造血能力 对2022年全部A股的披露数据进行汇总统计。我们重点关注经营性现金流、净利润、持续经营净利润、年度累…

PostgreSQL父子建表查询所有的子数据-利用自定义函数查询

pgsql 函数查询代码 select find_space_tree_list_by_nodeid(1,1) 查询结果示意图 获取子集函数代码 CREATE OR REPLACE FUNCTION "public"."find_space_tree_list_by_nodeid"("nodeid" varchar, "viewid" varchar)RETURNS "…

算法修炼Day51|● 309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费

LeetCode:309.最佳买卖股票时机含冷冻期 309. 买卖股票的最佳时机含冷冻期 - 力扣&#xff08;LeetCode&#xff09; 1.思路 初始化dp[i][j]数组&#xff0c;表示第i天的最大利润为dp[i][j]. 精确的定义状态是个难点&#xff0c;可以定义四种状态&#xff1a;持有股票&#…

特斯拉Model 3的七年狂飙

‍ 作者 | 张祥威 编辑 | 德新 发布一周拿下32万张订单&#xff0c;之后用时五年&#xff0c;交付量突破100万辆。粗略计算&#xff0c;自2016年发布至今&#xff0c;特斯拉Model 3已交付超150万辆。 放眼新能源赛道&#xff0c;如此战绩 别无二家。 Model 3踩中纯电动车的…

常用的电参数

电参数根据电流的特点可以分为直流电参数和交流电参数&#xff0c;在电参数中有些是可以通过电参数表测得&#xff0c;有些参数则为通过测得的参数计算而来。 一、电参数 1.1 直接可测电参数 ——瞬时电压值 ——瞬时电流值 n——采样点数 f——频率 time——时间 其中&…

go里面关于超时的设计

设想一下你在接收源源不断的数据&#xff0c;如果有700ms没有收到&#xff0c;则认为是一个超时&#xff0c;需要做出处理。 逻辑上可以设计一个grouting,里面放一个通道&#xff0c;每收到一条数据进行相应处理。通道中夹杂一个timer定时器的处理&#xff0c;若通道在700ms内…

微服务中间件--Eureka注册中心

Eureka注册中心 a.eureka原理分析b.搭建eureka服务c.服务注册d.服务发现 a.eureka原理分析 1.每个服务启动时&#xff0c;将自动在eureka中注册服务信息 (每个服务每隔30秒发送一次的心跳续约&#xff0c;当某个服务没有发送时&#xff0c;eurekaServer将自动剔除该服务&#x…

基于web的服装商城系统java网上购物商店jsp源代码mysql

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

【Java转Go】快速上手学习笔记(四)之基础篇三

目录 泛型内置泛型的使用切片泛型和泛型函数map泛型泛型约束泛型完整代码 接口反射协程特点WaitGroupgoroutine的调度模型&#xff1a;MPG模型 channel介绍语法&#xff1a;举例&#xff1a;channel遍历基本使用和协程一起使用案例一案例二 select...casemain.go 完整代码 文件…