JS-DOM(提升)

通过关联数组提升JavaScript DOM解析效率 本文还有配套的精品资源,点击获取 简介:本文深入探讨了JavaScript中关联数组在解析和操作网页DOM结构时的应用,包括DOM遍历、事件处理、元素操作、CSS选择器使用,以及如何使用JShell和Chrome DevTools进行代码测试和调试。文章还涵盖了跨浏览器兼容性的技巧,旨在提高开发者在网页开发中的效率和DOM处理的精确性。 1. 关联数组在DOM操作... 阅读详情

获取DOM对象

1.根据CSS选择器来获取DOM元素

1.1选择匹配的第一个元素

语法:document.querySelector(“css选择器”);
参数:包含一个或者多个有效的CSS选择器。
返回值:CSS选择器匹配的第一个元素,一个HTMLElement对象。
如果没有匹配到,则返回null。

<div>我是一个盒子</div>
<script>
    //js 获取元素
    let div=document.querySelector("div");
    //只能获取第一个元素
    console.log(typeof div);
</script>

在这里插入图片描述

如果想要获取其他元素则可以给元素添加 class 或者 id 来获取

<div>我是一个盒子</div>
<div class="two">我是第二个盒子</div>
<script>
    //js 获取元素
    let div=document.querySelector(".two");
    //只能获取第一个元素
    console.log(typeof div);
</script>

在这里插入图片描述

例如想要拿到 ul 里面的第三个 li 标签

<div>我是一个盒子</div>
<div class="two">我是第二个盒子</div>
<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
</ul>
<script>
    //js 获取元素
    let li=document.querySelector("ul li:last-child");
    console.log(li);
</script>

在这里插入图片描述

1.2选择匹配多个元素

语法:document.querySelectorAll(“CSS选择器”);
All表示获取所有选择器
参数:包含一个或多个有效的CSS选择器
返回值:CSS选择器匹配的 NodeList 对象集合

<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
</ul>
<script>
    //获取所有li
    //js 获取元素
    let lis=document.querySelectorAll("ul li");
    console.log(lis);
</script>

在这里插入图片描述

总结:
获取一个DOM元素我们使用querySelector()
获取多个DOM元素我们使用querySelectorAll()
querySelector()方法只能选择一个元素,能直接操作修改元素
querySelectorAll()可以选择多个元素,不可以直接修改元素,只能通过便利的方式给里面的元素进行修改
ducument.querySelectorAll()得到的是一个伪数组
有长度有索引号
但是没有 pop() push() 等数组方法
想要得到里面的每一个对象,则需要遍历(for)的方法获取。

<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
</ul>
<script>
    //获取所有li
    //js 获取元素
    let lis=document.querySelectorAll("ul li");
    for(var i=0;i<lis.length;i++){
        console.log(lis[i]);
    }
</script>

在这里插入图片描述

1.3其他获取DOM元素的方法

根据id获取一个元素
document.getElemnentById(‘nav’);
根据标签获取一类元素 获取页面所有div
document.getElementsByTagName(‘div’)
根据类名获取元素 获取页面所有类名为w的元素
decument.getElementsByClassName(‘w’)

2.设置/修改DOM元素内容

设置/修改DOM元素内容的三种方法

document.write()方法
元素.innerText属性
元素.innerHTML属性

三者的区别

doument.write()方法 智能追加到body中
元素.innerText()属性 只识别内容 不能解析标签
元素.innerHTML()属性 能够解析标签
具体实现通过以下例子

<style>
div{
    background-color: pink;
    width: 200px;
    height: 200px;
}
</style>
<div>我是一个盒子</div>

在这里插入图片描述

2.1document.write()

只能将本内容追加到前面的位置
文本中包含的标签会被解析

    document.write('<h1>hello</h1>');
    document.write('zh');

在这里插入图片描述

2.2元素innerText属性

该属性将文本内容添加/更新到任意标签位置
文本中包含的标签不会被解析

<div>我是一个盒子</div>
<script>
//获取标签
let div=document.querySelector("div");
//修改标签的内容
//对象.属性=值
div.innerText='zzz';
</script>

在这里插入图片描述

2.3元素innerHTML属性
<div>我是一个盒子</div>
<script>
//获取标签
let div=document.querySelector("div");
//innerHTML解析标签内容
div.innerHTML="<strng>111</strong>"
</script>

在这里插入图片描述

3.设置/修改元素样式属性

设置/修改元素样式属性的三种方法

案例:

<style>
    div{
        width: 200px;
        height: 200px;
        background-color: pink;
    }
</style>
<div>111</div>

在这里插入图片描述

3.1通过style属性操作CSS

语法:对象.style.样式属性=值

let div=document.querySelector('div')
div.style.backgroundColor='red';

在这里插入图片描述

3.2操作类名(className)操作CSS

如果修改的样式比较多,直接通过style属性修改比较繁琐,我们可以通过借助于CSS类名的形式修改.
语法:元素.className=‘CSS类名’

<style>
    .active{
        width: 400px;
        height: 200px;
        background-color: aqua;
        margin-left: 50px;
    }
</style>
<script>
let div=document.querySelector('div')
div.className='active';
</script>

在这里插入图片描述

注意:
1.由于clss是关键字,所以使用className去替代
2.className时使用新值换旧值,如果需要添加一个类,需要保留之前的类名

3.3通过classList操作类控制CSS

为了解决className容易覆盖以前的类名,我们可以通过classList方法追加和删除类名
语法:
追加一个类
元素.classList.add(‘类名’)

<div class="one">111</div>
<script>
    let div=document.querySelector('div')
    div.classList.add('active');
</script>

在这里插入图片描述

删除一个类
元素.classList.remove('类名)

<div class="one">111</div>
<script>
    let div=document.querySelector('div')
    div.classList.remove('one');
</script>

在这里插入图片描述

切换一个类
元素.classList.toggle(‘类名’)

<div >111</div>
<script>
    let div=document.querySelector('div')
    div.classList.toggle('one');
</script>

在这里插入图片描述

4.设置/修改表单元素属性

表单有很多情况,也需要修改属性,比如点击密码输入框的眼睛可以显示或者隐藏,本质上是把表单类型转换为文本框
通过案例具体分析

<input type="text" value="请输入密码">
    <script>
        let input=document.querySelector('input');
    </script>

在这里插入图片描述

语法:
获取:DOM对象.属性名
表单.value=’ ’

<input type="text" value="请输入密码">
    <script>
        let input=document.querySelector('input');
        input.value='zz'
    </script>

在这里插入图片描述

设置:DOM对象.属性名=新值
表单.type=’ ’

<input type="text" value="请输入密码">
    <script>
        let input=document.querySelector('input');
        input.type="password";
    </script>

在这里插入图片描述

5.定时器间歇函数

5.1开启定时器

语法:setInterval(function(){},时间)
对于函数代码量较大的我们也可以通过调用的方式来编写

function show(){
    conslog.log("zz");
}
setIntervale(show,1000);
5.2关闭定时器

语法:let 变量名=setIntervale(函数,间隔时间)
clearInterval(变量名)

let zh=setIntervale(show , 1000);
 clearInterval(zh);
提升Web应用性能:DOM操作与JavaScript数据访问 本文探讨了如何通过减少对DOM的操作和优化JavaScript中的数据访问来提高Web应用程序的性能。文章强调了访问和修改DOM元素的开销,以及如何通过局部变量存储来减少访问次数和提升效率。此外,还比较了innerHTML与传统DOM方法在处理HTML内容更新时的性能差异。 阅读详情

相关推荐

MacOS下Mixly 2.0安装避坑指南:从Java环境到终端权限全解析

本文详细解析了在MacOS系统上安装Mixly 2.0时可能遇到的核心问题与解决方案。针对Java环境版本不兼容、MacOS Gatekeeper安全机制拦截以及终端权限不足三大常见障碍,提供了从检查并配置正确Java版本、安全设置绕过到彻底解决应用内部工具链权限的完整避坑指南,帮助用户顺利完成安装并正常使用。

weixin_29231725的博客 502

JavaScript获取元素的几种方法

selenium可以借用JavaScript操作元素,这是一些JavaScript获取元素的方法

m0_75092189的博客 905

VMware Workstation Pro 25H2 去虚拟化精简便携版完全指南

虚拟机技术在现代开发和测试环境中扮演着重要角色,但客户机系统常因暴露虚拟化特征而被特定软件识别为“虚拟机”,导致功能受限。同时,官方 VMware Workstation Pro 安装包体积大、安装流程繁琐,难以实现移动化部署。去虚拟化通过修改 VMX 配置、屏蔽 CPUID 特征、反射宿主机硬件信息等手段降低被检测概率;精简与便携则通过裁剪非核心文件和改用脚本注册服务,实现即解压即用的轻量化形态。这类改版方案特别适合临时环境搭建、敏感软件兼容测试以及构建随身开发环境。本文从虚拟化检测原理出发,系统梳理了

weixin_34068198的博客 376

Javascript:根据CSS选择器来获取第一个匹配的DOM元素

Javascript:根据CSS选择器来获取第一个匹配的DOM元素

听海边涛声 529

普罗米修斯监控达梦数据库集群

-----------------------------------新增文件---------------------------------------注:图上即为启动成功,如果没有问题,则使用nohup后台启动程序。官网地址:https://github.com/gy297879328/dameng_exporter。注:prometheus的对数据库的指标采集如果高于60s一次,请手动修改提供表盘中的计算值。修改dameng_exporter.config配置文件,修改账号密码的部分。

weixin_49985403的博客 1679

告别理论纠结!用ADS和Sigrity玩转电源完整性:从PDN阻抗优化到芯片供电仿真全流程

本文详细介绍了如何利用ADS和Sigrity工具进行电源完整性(PI)分析,从PDN阻抗优化到芯片供电仿真的全流程。通过频域、直流和时域分析,工程师可以精确评估电源网络性能,优化设计以避免电压波动和系统失效。文章还提供了ADS和Sigrity PowerDC的实战操作指南,帮助读者掌握现代PI设计的核心技术。

weixin_33749242的博客 310

js根据CSS选择器来获取DOM元素

第一个第一个。

2203_75410429的博客 1125

Autosar结合simulink的汽车应用层软件开发实例

本文基于汽车应用开发案例,并结合Autosar相关知识,生成具有Autosar标准的汽车应用层开发代码,以供学习和参考。以上就是本篇内容,主要是利用Simulink创建Autosar接口并进行端口映射的方法。

m0_64899535的博客 2152

JavaScript CSS 选择器获取函数详细教程

在 JavaScript 中,有多种方法可以通过 CSS 选择器来获取 DOM 元素。以下是几种常用方法的详细说明和示例。

a181001_的博客 707

GOM Correlate拉伸试验后处理操作

本文描述了使用GOM Software 2022对拉伸试样进行后处理的操作,包括设置检测点、引伸计、输出应变数据到表格、输出报告为视频等

qq_45008924的博客 4661

LoveSQL

LoveSQL(SQL注入详解) 1、根据题目,显然想到的是sql注入漏洞,直接尝试万能密码 2、此时url构造,查看字段数 /check.php?username=admin' order by 3%23&password=1 # 存在 /check.php?username=admin' order by 4%23&password=1 # 报错 因此,得到总共有三个字段数 注意:url中不能用#,应该用url编码%23 3、用union来查询测试注入点,查看回显点

lunan的博客 1562

汇总JavaScript 获取元素的方式和CSS选择器

JavaScript 初学笔记

cinin的博客 1418

OpenClaw对接本地大模型:Llama3/Qwen/ChatGLM全适配,完全私有化部署

OpenClaw对接本地大模型,是企业级AI智能体落地的必经之路——它不仅解决了数据隐私和合规问题,还能大幅降低成本、提升响应速度、实现定制化。这篇文章我给大家完整拆解了两套部署方案:Ollama(新手首选,5分钟搞定)和vLLM(生产环境首选,高性能),覆盖了Llama3/Qwen/ChatGLM三大主流模型,还有真实的落地案例、高级优化、踩坑避坑指南,看完你就能零代码完成完全私有化的部署。从零开发自定义工具,给OpenClaw添加专属业务能力;

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 808

如何提升JavaScript操作DOM的效率

Nicholas为您讲解如何提升JavaScript操作DOM的效率!在Web开发中,JavaScript的一个很重要的作用就是对DOM进行操作,可你知道么?对DOM的操作是非常昂贵的,因为这会导致浏览器执行回流操作,而执行了过多的回流操作,你就会发现自己的网站变得越来越慢了,我们应该尽可能的减少DOM操作。本文是这个系列的最后一篇,给出了一些指导性原则,比如在什么时候应该对DOM

oak_l的专栏 973

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

js中的变量提升与函数提升,BOM操作,DOM操作

一.js中的变量提升与函数提升 1.在js中只有2种作用域 #1.全局作用域 #2.函数作用域 … 在ES6之前,js是没有块级作用域。 首先来解释一下什么是没有块级作用域? 2.什么是变量提升? 在js中,代码执行分2步走: #1.解析 #2.一步一步执行 … 变量提升就是变量声明会被提升到作用域的最顶上去,也就是该变量不管是在作用域的哪个地方声明的,都会提升到作用域的最顶上去. 上图写法其实等价于下图中的写法 示例1: 把上面的例子稍作改动,结果就会大不一样 示例2: 代码演示 /

yikenaoguazi的博客 255

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

java js 速度慢_如何提升JavaScript的运行速度(DOM篇)

在Web开发中,JavaScript的一个很重要的作用就是对DOM进行操作,可你知道么?对DOM的操作是非常昂贵的,因为这会导致浏览器执行回流操作,而执行了过多的回流操作,你就会发现自己的网站变得越来越慢了,我们应该尽可能的减少DOM操作。本文是这个系列的最后一篇,给出了一些指导性原则,比如在什么时候应该对DOM可以进行什么样的操作等。【原文】Nicholas C. Zakas - Speed u...

weixin_34112399的博客 843

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

如何提升JavaScript的运行速度(DOM篇)

在Web开发中,JavaScript的一个很重要的作用就是对DOM进行操作,可你知道么?对DOM的操作是非常昂贵的,因为这会导致浏 览器执行回流操作,而执行了过多的回流操作,你就会发现自己的网站变得越来越慢了,我们应该尽可能的减少DOM操作。本文是这个系列的最后一篇,给出了一 些指导性...

chenping0895的博客 304

riscv-tests实战:RISC-V CPU设计验证与指令集自检全解析

在RISC-V CPU设计验证中,手写汇编测试只能覆盖少数预期路径,而指令集测试套件则提供了一套严格的自检机制。RISC-V指令集测试(riscv-tests)通过统一的测试框架,在汇编层面对每条指令的行为进行验证,并以签名比对或tohost握手方式判定通过与否。它不仅是CPU功能正确性的基准线,也是从RTL仿真到FPGA上板前不可或缺的验证环节。实际工程中,结合Spike模拟器对照、按指令类别切片定位,能高效排查流水线、异常处理及边界值等典型问题。riscv-tests覆盖不到的复杂场景,可借助riscv

weixin_33957648的博客 443

JavaScript 性能优化实战:优化 DOM 操作提升交互响应

在现代 Web 应用开发中,JavaScript 与 DOM(文档对象模型)的交互极为频繁。无论是创建动态界面、响应用户操作,还是更新页面内容,DOM 操作都扮演着关键角色。然而,不当的 DOM 操作往往是导致页面性能瓶颈的重要因素。优化 DOM 操作,对于提升 Web 应用的交互响应速度和用户体验至关重要。本文将深入探讨如何在 JavaScript 中高效优化 DOM 操作,通过实战案例展示具体的优化策略与技巧。

deying0865423的博客 1030

变量提升规则(预编译)以及DOM/JS二

预编译 预编译-->变量提升 变量声明提升到最顶端 预编译过程好产生一个AO对象 activation Object 预编译发生在函数之前预编译: (1).创建AO对象 (2).找形参和变量声明,将变量和形参作为作为AO属性名 值undefined(同名只写一次) (3)将实参和形参相统一 (4)在函数里找函数声明 函数体作为值赋予函数名 经过AO预编译后从AO中取值 functi...

qq_39112101的博客 547

【JS提升】浅谈从DOM操作到虚拟DOM

一、虚拟DOM (1)概念 虚拟DOM(Virtual DOM)-> Vue React核心 通过JS去模拟DOM结构 比如把表单里的abc改成dbc,用JQuery的话就会先去除abc,再改成dbc,这样就比较消耗性能 如果用虚拟DOM的话,就只需要修改更改的内容就可以了,这样性能相对的提升了 (2)snabbdom snabbdom是一个虚拟DOM库 h函数: 帮助生成一个虚拟的dom节点 // 第一个参数是类名、第二个参数是属性,第三个参数是子节点 var vnode = h("ul#list"

小管打天下的博客 458

如何提升JavaScript的运行速度之DOM篇(四)

在Web开发中,JavaScript的一个很重要的作用就是对DOM进行操作,可你知道么?对DOM的操作是非常昂贵的,因为这会导致浏览器执行回流操作,而执行了过多的回流操作,你就会发现自己的网站变得越来越慢了,我们应该尽可能的减少DOM操作。本文是这个系列的最后一篇,给出了一些指导性原则,比如在什么时候应该对DOM可以进行什么样的操作等。【原文】Nicholas C. Zakas - Speed u...

kaiserlu的专栏 151

[转帖]如何提升JavaScript操作DOM的效率

Nicholas为您讲解如何提升JavaScript操作DOM的效率! 在Web开发中,JavaScript的一个很重要的作用就是对DOM进行操作,可 你知道么?对DOM的操作是非常昂贵的,因为这会导致浏览器执行回流操作,而执行了过多的回流操作,你就会发现自己的网站变得越来越慢了,我们应该尽可能 的减少DOM操作。本文是这个系列的最后一篇,给出了一些指导性原则,比如在什么时候应该对DOM可以进行什...

weixin_34291004的博客 91

原生JS操作DOM太慢?这7种优化策略让你提升300%效率

提升javascript dom操作效率的7种实用策略,解决页面卡顿与性能瓶颈。涵盖批量更新、文档片段、事件委托等核心方法,适用于高频交互场景,显著提升运行速度,值得收藏。

ProceNest的博客 425

javascript性能提升——减少访问DOM的次数

访问DOM元素是有代价的,修改DOM元素则更为昂贵,因为它会导致浏览器重新计算页面的几何变化。 当然,最坏的情况是在循环中访问修改元素,尤其是对HTML元素集合循环操作。 例如: function innerHTMLLoop () { for(var count = 0; count < 15000; count++){ document.getElementById

1800
上一篇: JS-DOM(基础)
下一篇: JS-事件
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值