函数中的简单Jquery选择器优化

时间:2016-05-21 22:00:33

标签: jquery function optimization selector

var func = function () {    
    if (x) {
        $('.classA').doSomething;
    } else
        $('.classA').doSomethingElse;
};

我很好奇函数的存储和运行方式以及它如何影响Jquery选择器。我已经读过,重用选择器是不理想的。如果您反复尝试在连续的代码行中找到带有classA的元素,最好存储元素引用并调用它。但是在上面的例子中,创建元素引用变量并将其放在if / else语句之外是否有任何值?如:

var func = function () {
    var element = $('.classA');
    if (x) {
        element.doSomething;
    } else
        element.doSomethingElse;
};

似乎在任何一种情况下,Jquery只需要遍历DOM一次,因为在第一个例子中,它只会运行If或Else。

现在我知道你可以在函数之外创建元素引用并在运行函数之前将它存储到内存中,但是如果元素不存在并且只是由之前的函数创建然后运行我的函数会怎样这里的例子?

1 个答案:

答案 0 :(得分:1)

两种功能的表现应该几乎相等。

但是第二个你有以下好处:

  • 您可以为所选对象提供可读名称(更容易找到错误)
  • 如果您以后需要它(例如重构后)
  • ,它会被缓存
  • 选择器由一个字符串组成。如果您在选择器中输入错误,则不会抛出错误
  • 如果您想更改选择器(p.e. classA - > classB),您只需要一次