a c*_*ame 14 performance jquery css-selectors pagespeed
对于我的项目,我使用缓存选择器来加速,并看到改进:(减少文档内的搜索)
var sel1 = $('#selector1');
var sel2 = $('#selector2');
Run Code Online (Sandbox Code Playgroud)
在这种情况下如何使用缓存选择器?对于前:
$('#selector1, #selector2').fadeTo(300, 1, 'linear');
Run Code Online (Sandbox Code Playgroud)
这只是为了完善我的代码
Ty :)
Jas*_*per 17
您可以使用.add()"将元素添加到匹配元素集":
sel1.add(sel2).fadeTo(300, 1, 'linear');
Run Code Online (Sandbox Code Playgroud)
文档.add():http://api.jquery.com/add
.add() 可以接受:
$('<selector>', <context>))您还可以将一组DOM元素传递给jQuery:
var one = $('#one')[0],
two = $('#two')[0];
$([one, two]).fadeTo(300, 1, 'linear');
Run Code Online (Sandbox Code Playgroud)
这是一个演示:http://jsfiddle.net/3xJzE/
UPDATE
我创建的三种不同的方法jsperf了当前回答:http://jsperf.com/jquery-fadeto-once-vs-twice(这似乎是使用数组选择器是最快的:$([one, two]).fadeTo...)
你可以使用.add()方法;
sel1.add(sel2).fadeTo(300, 1, 'linear');
Run Code Online (Sandbox Code Playgroud)
如果$在命名变量时添加前缀会很好.这样您就可以将它们与标准的javascript对象区分开来.所以这更好:
var $sel1 = $('#selector1');
var $sel2 = $('#selector2');
$sel1.add($sel2).fadeTo(300, 1, 'linear');
Run Code Online (Sandbox Code Playgroud)