Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jquery菜鸟:如何在同一个DOM元素上高效地执行多个操作?

jquery菜鸟:如何在同一个DOM元素上高效地执行多个操作?
EN

Stack Overflow用户
提问于 2009-12-11 17:12:12
回答 6查看 11.7K关注 0票数 14

我最近了解到(在stackoverflow:))在每次我编写代码时使用jquery

代码语言:javascript
运行
AI代码解释
复制
$("...")

执行DOM搜索以定位匹配的元素。我的问题很简单:如何有效地对使用jquery定位的DOM元素执行一系列操作(使用jquery对象的优秀方法)?目前,我正在做(例如):

代码语言:javascript
运行
AI代码解释
复制
var previousHtml = $("#myDiv").html();
$("#myDiv").addClass("tangoClass");
$("#myDiv").html("bla bla bla");
//...

基本上,我总是通过写$("#myDiv")来引用元素。如何以有效的方式重复操作DOM元素(使用jquery函数,而不是普通Javascript)?下面的内容可以避免代价高昂的DOM搜索吗?

代码语言:javascript
运行
AI代码解释
复制
var myDiv = $("#myDiv");
var previousHtml = myDiv.html();
myDiv.addClass("tangoClass");
myDiv.html("bla bla bla");

或者我应该尝试尽可能多地链接jquery调用,例如:

代码语言:javascript
运行
AI代码解释
复制
var previousHtml = $("#myDiv").addClass("tangoClass").html(); //saves me 1 $("#myDiv") call
$("#myDiv").html("bla bla bla");

感谢你的见解。:)

劳拉

EN

回答 6

Stack Overflow用户

发布于 2009-12-11 19:55:21

我也同意链接是最好的方法,但这里没有人提到的是在链接时使用.andSelf()(1)和.end()(2)。

下面的代码将“边框”类添加到其中包含的divp中。

代码语言:javascript
运行
AI代码解释
复制
$("div").find("p").andSelf().addClass("border");

使用.end()“重置”选择器

代码语言:javascript
运行
AI代码解释
复制
$("div")
  .find("p").addClass("myParagraph").end()
  .find("span").addClass("mySpan");

更新:.andSelf()已被弃用,本质上已重命名为.addBack(),请以相同的方式使用它。

票数 13
EN

Stack Overflow用户

发布于 2009-12-11 17:18:04

每次使用jQuery函数时,它都会返回初始查询中的完整jQuery对象。这使您可以将操作链接在一起,因此实际的查询只在第一次发生。

从您的示例来看,您似乎从未使用过previousHtml,所以您根本不需要使用它。我认为你可以这样做:

代码语言:javascript
运行
AI代码解释
复制
$("#myDiv").html('bla bla bla').addClass('tangoClass');
票数 2
EN

Stack Overflow用户

发布于 2009-12-11 17:26:21

这取决于您对该元素调用了哪些函数,因为并非所有函数都会返回DOM元素。但是,如果您必须调用的所有函数都将始终返回DOM元素,那么它肯定会使您的代码更具可读性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1889474

复制
相关文章
jQuery操作DOM元素
作为一个后端程序员,也是要和前端页面打交道的。最常见的场景莫过DOM元素操作和前端页面使用AJAX向服务器发送请求。 实现上述两个功能当然可以使用原生js来完成,但在实际开发过程中很少这样做,通常会使用一些别人封装好的js库来辅助我们的工作,jQuery就是这些辅助库中的一员。
雪飞鸿
2018/09/05
2.8K0
jquery 操作DOM元素(1)
.clone()   创建一个匹配的元素集合的深度拷贝。   .clone([withDataAndEvents])     withDataAndEvents (默认为false)       一个Boolean 表示是否会复制元素上的时间处理函数。   .clone([withDataAndEvents][,deepwithDataAndEvents])     withDataAndEvents (默认为false)
用户1197315
2018/01/19
1.4K0
jquery操作DOM 元素(3)
.detach()   从DOM 中去掉所匹配的元素。     .detach([selector])       selector 一个选择表达式将需要移除的从匹配的元素中过滤出来。     $("p").detach(); .empty()   从DOM中移除集合中匹配元素的所有子节点。     .empty() 这个方法不接受任何参数。   结构:     <div class="container">
用户1197315
2018/01/19
1.1K0
jquery操作DOM 元素(2)
.after()   在匹配的元素集合中的每个元素后面插入参数指定的内容,作为其兄弟节点。   .after(content[,content])     content HTML字符串 DOM 元素 元素数组 对象,用来插入到集合中每个匹配元素的后面。     content HTML字符串 DOM 元素 元素数组 对象,用来插入到集合中每个匹配元素的后面。   .after(function)     function 返回一个 H
用户1197315
2018/01/19
1.3K0
jQuery DOM操作
在目标对象前插入同级兄弟元素(不是头部,而是外面,和对象并列同级),参数和append类似
bamboo
2019/01/29
1K0
jQuery DOM操作
jQuery DOM操作
对节点的操作 查找节点 查找节点可以直接利用jQuery选择器来完成,非常便利。 插入节点 jQuery提供了8种插入节点的方法。 序号 方法 描述 实例 1 append() 向每个匹配的元素内部
静默虚空
2018/01/05
2.1K0
jquery dom操作
var li=$("ul i:eq(1)") var li_txt=li.text() alert(li_txt)
用户5760343
2019/10/08
9260
jquery dom操作
03-老马jQuery教程-DOM操作(上)
根据文章内容总结摘要。
老马
2017/12/27
1.7K0
JQuery中DOM操作[续]
10、设置和获取HTML、文本和值示例代码 <p title=”选择你喜欢的水果?”><b>选择你喜欢的水果?</b></p> <form action=”” method=”post”> 用户输入<input name=”title” id=”myinput” value=”请输入内容” /> </form> <script language=”javascript”> var p_html=$(“p”).html();//获取p元素的html代码,注意这里包含了<b></b> //如果需要重新设置,只需
苦咖啡
2018/05/07
8340
jQuery 元素操作
jQuery 元素操作主要讲的是用jQuery方法,操作标签的遍历、创建、添加、删除等操作。
星辰_大海
2020/10/09
2.8K0
jQuery 元素操作
jQuery 元素操作
​ jQuery 元素操作主要讲的是用jQuery方法,操作标签的遍历、创建、添加、删除等操作。
梨涡浅笑
2022/05/08
2K0
jQuery 元素操作
jQuery 元素操作主要讲的是用jQuery方法,操作标签的遍历、创建、添加、删除等操作。
清出于兰
2020/10/26
1.4K0
jQuery 元素操作
jQuery(操作Dom-节点操作①)
selector.append(节点对象):在selector元素内部的最后插入"节点对象"
全栈开发日记
2022/05/12
1.5K0
如何更优地去创建DOM元素
对面上面那种问题,可能就会想到通过innterHTML方式去创建DOM元素 这里先举个栗子:
IMWeb前端团队
2019/12/03
2.2K1
如何更优地去创建DOM元素
jQuery(操作Dom-样式操作)
css('styleName','styleVaule'):修改行内样式 隐式迭代
全栈开发日记
2022/05/12
1.3K0
jQuery中的DOM操作
该文介绍了DOM操作的分类,包括查找节点、创建节点、插入节点、删除节点、替换节点、包裹节点、复制节点、替换节点和节点互换。使用DOM操作可以更加方便地操作HTML和CSS,实现各种动态效果和交互功能。
IMWeb前端团队
2017/12/29
1.5K0
jQuery中的DOM操作
查找属性节点(通过jq选择器),操作属性节点(attr(‘属性名’,’属性值’)), 操作文本节点(text())读/写
IMWeb前端团队
2019/12/03
1.3K0
锋利的JQuery —— DOM操作
图片猛戳链接
用户1154259
2018/01/17
5720
锋利的JQuery —— DOM操作
新手如何在 ES6 如何操作HTML DOM元素?
DOM代表文档对象**模型。HTML 页面在浏览器中呈现。浏览器将从网络服务器下载的页面中包含的所有元素组装到其内存中。一旦完成,浏览器就会在浏览器窗口中显示这些对象,一旦完成,浏览器就无法再识别单个 HTML 元素。支持 JavaScript 的浏览器能够在 HTML 页面在浏览器中呈现之后识别该页面中的各个对象,因为支持 JavaScript 的浏览器可以识别并使用 DOM。因此,允许随意控制对象的功能。
用户1418987
2023/10/21
3960
新手如何在 ES6 如何操作HTML DOM元素?
Jquery的属性操作和DOM操作
       3 val()    :     获取或设置表单内容    (原生JS使用value)
用户3159471
2018/09/13
1.4K0
Jquery的属性操作和DOM操作

相似问题

使用JavaScript高效地执行多个DOM更新

41

菜鸟jQuery问题,动态创建DOM元素

35

更高效地执行多个父级操作

30

高效地在同一个模型上执行多个查询

14

如何高效地创建和附加多个dom元素

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档