哪个jquery选择器可以更好地优化多个元素(代码片段)

author author     2022-12-29     338

关键词:

我有一个动态构造的表,它是根据AJAX调用返回的数据构建的。在构建表的函数结束时,我需要将jQuery UI包装器应用于表中的一些锚元素,由“map-marker”和“th-list”图标标识。哪两个选项更好地优化?

$("#tblResults tbody tr td").find("a[data-icon='map-marker'], a[data-icon='th-list']").button();

要么

$("#tblResults tbody tr td a[data-icon='map-marker'], #tblResults tbody tr td a[data-icon='th-list']").button()

这个特定的例子不会以低效率的方式来做它,但我在我的代码中有其他地方我将回调函数应用于更大的表,并且它可能会有所不同。

答案

有关参考,请参阅此处:https://stackoverflow.com/a/16423239/125981现在,这不是您问题的完全重复,但有助于解释您的问题作为补充。

第二个并不是更好,因为它将完成所有这些(我描述)两次,所以不是没有那个。现在如何真正改善第一个......

既然你提到了“multiple”,那么我们首先得到你的表的引用,然后在变量中缓存它以避免多次DOM命中就是这样做。

let myResultsThing = $('#tblResults');

现在我们有ID引用的元素(这是最快的选择器)

为什么?我们来谈谈这个。这里使用的Sizzle引擎使用右到左选择器,所以这个$("#tblResults tbody tr td")说的是1.找到所有td,2。过滤那些tdtr内的那些,3。过滤那些tbody里面的那些4.过滤器属于id #tblResults表示的元素内的那些

现在,如果你有10张表,其中100张td,每张10行,每张3张tbody,你可以看到这是一项非常繁忙的工作。因此,通过首先隔离ID,我们将很快消除90%以上的努力。

好的,我们上面有表格参考方式。使用它我们可以找到tbody(或所有tbody更精确可能有多个),从而消除页眉和页脚中的任何td

let myTbodies = myResultsThing.find('tbody')
//get into the rest of it
.find('tr td').find("a[data-icon='map-marker'], a[data-icon='th-list']").button();

现在,我可能倾向于实际测试上述所有内容

myResultsThing.find("a[data-icon='map-marker'], a[data-icon='th-list']").button();

根据您的DOM的确切情况,您可以缓存(如我所做的那样)清除TD或A元素选择器,但我会将其留给您作为练习,因为我们没有标记来推测这里。

02jquery选择器(代码片段)

基本选择器通配符选择器:varall=$(‘*‘);//根据$(‘*‘)获取。元素选择器:varele=$(‘div‘);//根据$(‘元素名‘)获取。如果给好几个元素绑定点击事件,$(this).index()可以确认点击的是第几个元素。类选择器:varcla=$(‘.bb‘);//根据$... 查看详情

javascript选择并迭代多个选择器jquery中的每个元素(代码片段)

查看详情

前端性能优化jquery性能优化

一、使用合适的选择器$("#id");1.使用id来定位DOM元素无疑是最佳提高性能的方式,因为jQuery底层将直接调用本地方法document.getElementById();如果这个方式不能直接找到你需要的元素,那么你可以考虑调用find()方法,代码如下:$("#domo"... 查看详情

优化 jQuery 悬停代码以更好地执行(更流畅的动画)

】优化jQuery悬停代码以更好地执行(更流畅的动画)【英文标题】:OptimizejQueryhovercodetoperformbetter(smootheranimation)【发布时间】:2010-12-0413:24:56【问题描述】:最近我一直在阅读有关jQuery优化技巧的文章,这些技巧确实有助于提高... 查看详情

jQuery 优化多个选择器

】jQuery优化多个选择器【英文标题】:jQueryOptimisationMultipleSelectors【发布时间】:2011-11-1819:25:37【问题描述】:在我的脚本顶部我有两个变量持有两个选择器:varall_open=$(\'ul#festival_datesli.controlsa:eq(0)\');varall_close=$(\'ul#festival_datesli... 查看详情

jquery选择器

是一个JavaScript函数库。jQuery极大地简化了javascript编程是一个工具集jQuery是一个 写的更好,单做的更多的轻量级JavaScript库 --需要掌握 HTMLCSS 在jQuery中,$(document).ready(function())可以省略为: $().ready(function())或$(function()js代码); 选... 查看详情

jquery之基本选择器(代码片段)

1.是什么?-有特定格式的字符串2.作用-用来查找特定页面元素3.基本选择器-#id:id选择器-element:元素选择器-.class:属性选择器-*:任意标签-selector1,selector2,selectorN:取多个选择器的并集(组合选择器)-selector1selector2selectorN:取多个选择器的... 查看详情

jquery选择器与javascript易出错知识点

一.jQuery选择器基本选择器1.Id(根据给定的ID匹配一个元素。如果选择器中包含特殊字符,可以用两个斜杠转义。)jQuery代码为$(“#myclass”)若有特殊字符则HTML代码为<spanid=“myclass[1]”jQuery代码为$(“#myclass\[1\]”)2.Class(一个用... 查看详情

jquery选择器

选择器是jQuery核心,使用选择器直接修改页面元素样式 ID选择器:一般是返回一个固定的元素$(function(){$(‘#id‘).css(‘属性如color‘,‘属性值‘);}) 元素名称选择器一般会返回多个元素$(function(){$(‘元素名称如div‘).css(‘... 查看详情

jquery选择器

在jquery库中,可以通过选择器实现DOM元素快捷选择这一重要的核心功能。1.选择器的优势(1)代码更简单  由于在jquery库中,封装了大量可以通过选择器直接调用的方法或函数,使编写代码更加简单轻松,简单几行代码就可以... 查看详情

jquery选择器大全(代码片段)

jQuery的选择器可谓之强大无比,这里简单地总结一下常用的元素查找方法$("#myELement")  选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myElement所以得到的是唯一的元素 $("div")     ... 查看详情

jquery选择器(代码片段)

我们学习有关如何选取HTML元素,关键点是学习jQuery选择器是如何准确地选取您希望应用效果的元素。先来看一些jQuery选择器的介绍:什么是jQuery选择器?选择器,就是用一种方式把你想要的那一个元素选中。把这... 查看详情

对于jquery选择器和动画效果停止动画的实战心得前端jquery框架(代码片段)

@[toc]JQuery选择器前面我展示了一些如何选择HTML元素的示例。关键是要了解jQuery选择器如何准确地选择要应用效果的元素。jQuery元素选择器和属性选择器允许按标记名、属性名或内容选择HTML元素。选择器允许操作HTML元素组或单个... 查看详情

jquery选择器大全

jQuery的选择器可谓之强大无比,这里简单地总结一下常用的元素查找方法$("#myELement")选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myElement所以得到的是唯一的元素$("div")选择所有的div标签元素,返回div元素... 查看详情

jq选择器总结(代码片段)

jQuery的选择器可谓之强大无比,这里简单地总结一下常用的元素查找方法$("#myELement")选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myElement所以得到的是唯一的元素$("div")选择所有的div标签元素,返回div元素... 查看详情

jquery7表单选择器(代码片段)

学习要点:1.常规选择器2.表单选择器3.表单过滤器 表单作为HTML中一种特殊的元素,操作方法较为多样性和特殊性,开发者不但可以使用之前的常规选择器或过滤器,也可以使用jQuery为表单专门提供的选择器和过滤器来准确... 查看详情

将多个元素数组组合成单个 jQuery 选择器

】将多个元素数组组合成单个jQuery选择器【英文标题】:CombinemultiplearraysofelementsintosinglejQueryselector【发布时间】:2018-07-0913:36:12【问题描述】:如果我有多个元素数组,将它们一起引用以对所有元素执行操作的语法是什么?$b=$(... 查看详情

单击功能上的多个选择器,如何知道单击了哪个选择器?

】单击功能上的多个选择器,如何知道单击了哪个选择器?【英文标题】:Multipleselectorsonclickfunction,howtoknowwhichselectorwasclicked?【发布时间】:2015-12-0408:58:21【问题描述】:这里是Jquery的新手。我在点击功能上有四个选择器,请参... 查看详情