在jquery中引用选择器比实际调用选择器更快吗?如果是这样,它会产生多大影响?

ant*_*liu 5 jquery jquery-plugins

$(preview-button).click(...)
$(preview-button).slide(...)
$(preview-button).whatever(...)
Run Code Online (Sandbox Code Playgroud)

这样做是一种更好的做法:

var preview-button = $(preview-button);
preview-button.click(...);
preview-button.click(...);
preview-button).slide(...);
preview-button.whatever(...);
Run Code Online (Sandbox Code Playgroud)

为了保持代码清洁和模块化,这可能是更好的做法,但它是否会在性能上有所不同?是否需要比另一个更长的时间来处理?多谢你们.

amo*_*era 8

是的,当您使用选择器而不将其存储在变量中时,jQuery需要每次都解析DOM.

如果你有类似$(".class")jQuery的东西,每次你使用它时都需要找到该类的元素,但如果它存储在变量中,它会使用变量中的唯一标识符.无需查找.

所以是的,我完全建议将其存储到变量中.

更新: 添加链接作为替代.

如果您只在一个地方使用选择器,您也可以进行链接,这意味着您使用相同的点表示法添加一个接一个的方法,如下所示:

$(".class")
       .click(function(){ ... })
       .mouseenter(function(){ ... })
       .css( ... );
Run Code Online (Sandbox Code Playgroud)