2010-08-03 18 views
5

¿Cuál es la diferencia entre $(this) y this en jQuery? Aquí están dos diferentes usos:

$(document).ready(function() { 
    $("#orderedlist").find("li").each(function(i) { 
    $(this).append(" BAM! " + i); 
    }); 
}); 


$(document).ready(function() { 
    // use this to reset several forms at once 
    $("#reset").click(function() { 
    $("form").each(function() { 
     this.reset(); 
    }); 
    }); 
}); 

Respuesta

10

El "este" variable se refiere (en casos tales como los controladores de eventos que haya suministrado) a un elemento DOM. Por lo tanto $ (this) es un objeto jQuery que contiene solo ese elemento DOM.

Debe usar el término "esto" cuando las API DOM nativas sean suficientes, y $ (esto) cuando necesite la ayuda de jQuery. Su segundo ejemplo es una buena ilustración; otro podría ser cuando solo necesitas el "id" o "nombre" de un elemento.

9

La diferencia es que this por sí mismo es una referencia al objeto DOM que el evento está actuando sobre. $(this) está creando un objeto jquery a partir de ese objeto dom.

EDITAR: Por lo tanto, con el objeto DOM no tendrá acceso a todas las funciones adicionales de jquery, sino solo a las que permite dom. Básicamente se puede pensar en el this por sí mismo como el mismo que si lo hizo document.getElementById(id)

+0

"' this' _by sí mismo es una referencia al objeto DOM que el evento está actuando upon_", hasta ahora la más bella definición para conocer 'esto', Colega de los pulgares:)! – Irfan

8

$(this) es un objeto jQuery mientras this se refiere al objeto DOM nativa