jquery - 在没有选择器的情况下使用 $.css() 会提高性能吗?

标签 jquery css performance dom get

Jquery 允许我们直接使用 $.css() 方法并将原始 DOM 元素作为第一个参数传递。例如,如果我想将 'a' 设置为 myDiv 的宽度,jQuery 允许使用以下语法:

(选项 1):

var elem = document.getElementById('myDiv');
var a = $.css(elem, 'width');

而不是这个(选项 2):

var a = $('#myDiv').css('width');

选项 1 不需要选择器,它似乎依赖于全局 jQuery 对象而不是创建一个新对象。我在 jQuery API 或网上找不到任何关于此方法的文档。我认为这会提高性能,尤其是当动画中需要 jQuery 对象时。为什么我不应该使用这种方法?

谢谢!

编辑: 性能测试表明选项 1 稍快一些。似乎没有任何理由不直接使用 $.css() 。感谢大家的回答!

最佳答案

是的,第一个稍微快一点。但它只能获取css值。

我在这里做了性能测试:http://jsperf.com/jquery-css-signature您可以修改它并测试其他选项。

既然事实已经确定,在这些性能优化级别上,我认为不值得开销。采用更清晰/可维护的方式获得相同的结果。在大多数情况下,性能优势不足以真正发挥作用。

关于jquery - 在没有选择器的情况下使用 $.css() 会提高性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16380694/

相关文章:

javascript - 按顺序填充文本框

javascript - 如何在到达最后一个带有 tabindex 的元素后从 1 开始重复 tabindex?

javascript - jQuery 将 div 的高度设置为有多少文本

javascript - 厌倦了 Medium.com 的优质内容。我可以隐藏针对具有特定类的元素的父元素的高级帖子吗?

Java/Android : virtual dispatch, switch-case,或数组访问

android - 为 Android 开发优化 Eclipse

jquery - 将 Div 定位在输入框的右上角

jquery - Twitter bootstrap 2.0 的拖放功能?

javascript - 如何使用 innerHTML 禁用 HTML 格式?

performance - Matlab:如何对二维向量集上的嵌套循环进行向量化