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对象时.我不应该使用这种方法的任何原因?
谢谢!
编辑:
Perf测试显示选项1更快一些.似乎没有任何理由不直接使用$.css().感谢大家的答案!
最佳答案 是的,第一个稍快一点.但它只能获得css值.
我在这里做了一个性能测试:http://jsperf.com/jquery-css-signature你可以修改它并测试其他选项.
现在事实已经确定,在这些性能优化水平上,我认为不值得开销.采用更清晰/可维护的方式获得相同的结果.在大多数情况下,性能优势并不大到真正重要.