JavaScript style.display ="none"或jQuery .hide()效率更高?

Man*_*nda 60 javascript css performance jquery

document.getElementById("elementId").style.display="none"
Run Code Online (Sandbox Code Playgroud)

用于在JavaScript中隐藏元素.但在jQuery中,

$("#elementId").hide();
Run Code Online (Sandbox Code Playgroud)

用于相同的目的.哪种方式更有效?我已经看到了两个jQuery函数之间的比较.hide(),并.css("display","none") 在这里.

但我的问题是纯JavaScript是否比jQuery更有效?

jAn*_*ndy 110

谈论效率:

document.getElementById( 'elemtId' ).style.display = 'none';
Run Code Online (Sandbox Code Playgroud)

jQuery用它.show().hide()方法做的是,它记住元素的最后状态.这有时会派上用场,但是因为你问的效率在这里并不重要.

  • 是的,这样效率更高,但这并不安全。在我的工作中,有一个几乎完全可配置的HUGE Web应用程序,因此根据上下文和配置,某些项目可能会或可能不会出现在页面中。如果该元素在页面中不存在,则将导致错误(在未定义的对象上使用.style)。使用JQuery,您将不会遇到这个问题,或者如果没有,您应该在执行之前检查`if(document.getElementById('elemtId'))`。 (2认同)

Jam*_*son 25

在99.999999%的情况下,效率对于这样的事情并不重要.做任何更容易阅读和维护的事情.

在我的应用程序中,我通常依靠类来提供隐藏和显示,例如.addClass('isHidden')/.removeClass('isHidden'),如果我愿意,可以让我使用CSS3制作动画.它提供更多的灵活性.

  • 我不会这么说.根据调用的数量,这个*可以成为一个因子*,因为我们每次都调用jQuery构造函数方法. (2认同)

Flo*_*ine 25

a = 2;
Run Code Online (Sandbox Code Playgroud)

VS

a(2);
function a(nb) {
    lot;
    of = cross;
    browser();
    return handling(nb);
}
Run Code Online (Sandbox Code Playgroud)

看来,您认为最快的是什么?

  • 这个让我开怀大笑,是最好的答案,很好的答案. (2认同)

Nea*_*eal 6

是.

是的.

Vanilla JS总是更有效率.