何时使用$(this)而不是那么慢?

daG*_*vis 1 comparison jquery this selector

在jQuery中我们可以像...

$('.button').click( function() {

    $(this).hide();

} );
Run Code Online (Sandbox Code Playgroud)

但是我们也可以这样做,当然:

$('.button').click( function() {

    $('.button').hide();

} );
Run Code Online (Sandbox Code Playgroud)

使用它有什么好处?这不慢吗?

我认为这个问题的答案将是......

有些情况下,只有这样才能使用.

告诉我那种情况的例子吧!:)

我应该使用哪个主要(如果两者都有效)?

Fel*_*ing 10

  • this如果你想要做的只是访问DOM属性(由所有浏览器实现,有一些),你应该使用.

    例如:this.href(<a>),this.src(<img>),this.id(所有元素(如果设置))等.这是紧固方式,因为您不对jQuery进行函数调用.

  • $(this)如果要将jQuery函数应用于DOM元素,则应该使用.

  • 如果您已经有对该元素的引用,则应该避免使用$(selector).再次搜索DOM要慢一些.

您可以在源代码的第92行中看到,传递HTML元素时没有太多事情发生.


还要注意的是$(this).hide(),并$('.button').hide();不能等同.第一个将隐藏被点击的元素,而第二个将隐藏所有.button元素.