jQuery各种获取元素的方式效率比较

/**这种方式最快,因为它直接使用原生的getElementById,ByTagName 和 querySelectorAll();*/
$(‘#box‘).find(‘p‘); 
/**jQuery会自动把这条语句转换为$(‘#box‘).find(‘p‘),效率较最快的方式慢了5%-10%*/
$(‘p‘,‘#box‘); 
/**
 *这条语句在jQuery内部会使用$.sibling()和javascript的nextSiblint()方法,
 *一个个的遍历结点,会比最快的方式慢50%左右
 */
$(‘#box‘).children(‘p‘); 
/**
 *jQuery内部使用的Sizzle引擎,处理各种选择器。Sizzle引擎的选择顺序是从右到左,
 *所以这条语句的选择顺序是先选择p,然后再一个个的过滤出父元素#box,
 *这导致他比最快的方式慢了大约70%
 */
$(‘#box>p‘);
/**
 *这条语句与上面那一条是同样的情况,但是上一条选择了直接的子元素,这一条可以选择多级子元素
 *所以它的速度更加的慢,大约比最快的方式慢77%
 */
$(‘#box p‘);
/**
 *jQuery内部会将这种方式转换为$(‘#box‘).find(‘p‘),比最快的方式慢了大约23%
 */
$(‘p‘,$(‘#box‘));

综上所述,最快的方式是find方式,最慢的是$(‘#box p‘)这种高级选择器方式,如果一开始可以对$(‘#box‘)进行赋值的话,效率会进一步的增加。

var box = $(‘#box‘);
var p = box.find(‘p‘);

我们应该推荐使用哪种方案呢?其实,使用哪种都差不多。这里,我们推荐使用jQuery 提供的方法。 因为不但方法的速度比高级选择器运行的更快, 并且它的灵活性和扩展要高于高级选择器。使用“+”或“~”从字面上没有 next 和 nextAll 更加语义化,更加清晰,jQuery 的方法更加丰富,提供了相对的 prev 和 prevAll。毕竟 jQuery 是编程语言,需要能够灵活的拆分和组合选择器,而使用 CSS 模式过于死板。所以,如果 jQuery 提供了独立的方法来代替某些选择器的功能,我们还是推荐优先使用独立的方法。

学习李彦恢老师的jQuery教程笔记

时间: 2024-08-11 23:57:54

jQuery各种获取元素的方式效率比较的相关文章

从零开始学 Web 之 DOM(二)对样式的操作,获取元素的方式

大家好,这里是「 Daotin的梦呓 」从零开始学 Web 系列教程.此文首发于「 Daotin的梦呓 」公众号,欢迎大家订阅关注.在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识点,期间也会分享一些好玩的项目.现在就让我们一起进入 Web 前端学习的冒险之旅吧! 1.对样式的操作 1.1.点击按钮设置 div 的宽高和背景颜色 <body> <input type="button" value="显示颜色" id="

JavaScript获取元素的方式总结

JavaScript有三种获取DOM元素的方式:id名.类名和标签名. 1. getElementById ?通过id属性来获取对应节点对象,只有一个输入参数(id名),返回一个对象. document.getElementById("container"); alert(typeof document.getElementById("container"));//typeof获取返回值类型 2. getElementsByTagName ?通过标签名获取对应节点对

jquery如何获取元素的宽度和高度

jquery如何获取元素的宽度和高度: 这当然是比较基础的问题,不过有可能初学者还是不够明了,下面就简单介绍一下. 获取元素的宽度: $(selector).width() 获取元素的高度: $(selector).height() selector是选择器,例如id.类和元素选择器登登. 原文地址是:http://www.51texiao.cn/jqueryjiaocheng/2015/0613/4046.html 最为原始地址是:http://www.softwhy.com/forum.ph

jquery中获取元素的几种方式小结

1 从集合中通过指定的序号获取元素 html: 复制代码代码如下: <div> <p>0</p> <p>1</p> <p>2</p> <p>3</p> <p>4</p> <p>5</p> <p>6</p> <p>7</p> </div> JS 复制代码代码如下: <script type

jQuery中获取元素的属性方法attr()简单用法

语法结构:$(selector).attr(attribute), //selector为选择器名,attribute为指定要获取的元素的属性名 修改元素属性的$(selector).attr(attribute,value), //selector为选择器名,attribute为指定要获取的元素的属性名 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/T

jquery几种获取元素left方式的异同

offset()函数用于设置或返回当前匹配元素相对于当前文档的偏移,也就是相对于当前文档的坐标.该函数只对可见元素有效. 该函数返回一个坐标对象(Object),该对象有一个left属性和top属性.属性值均为数字,它们都以像素(px)为单位. 与position()不同的是:offset()返回的是相对于当前文档的坐标,position()返回的是相对于其定位的祖辈元素的坐标. 该函数属于jQuery对象(实例). <!DOCTYPE html> <html lang="en

JQuery基本获取值的方式

1.获取选中单选按钮的值$('input:radio:checked').val():$("input[type='radio']:checked").val();$("input[name='rd']:checked").val();$(':radio[name=rd]:checked').val() 2.获取下拉框当前选中的文本$("#selectgame").find("option:selected").text()

jQuery-少见获取元素的方式

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript" src="js/jquery-1.11.0.js"></script></head><

Jquery 获取元素标签名称

Jquery的获取元素标签名称的方法: 1.$( this ).get(0).tagName 2.$( this )[0].tagName 3.$( this ).prop("tagName") 4.$( this ).prop("nodeName") 原文地址:https://www.cnblogs.com/queende7/p/8669051.html