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/