2011-09-20 12 views
5

Duplicar posible:
jQuery $(this) vs this

soy nuevo en esto y tratando de que mi concepto correcto. Ha habido muchas instancias del uso de "this" y "$(this)". ¿Puede alguien explicar la diferencia y en qué condiciones usamos los dos diferentes "esto"?

+2

http://stackoverflow.com/questions/1051782/jquery-this-vs- thisis –

+0

Muchas gracias chicos! Está mucho más claro ahora. – user864600

Respuesta

13

En las funciones de jQuery, this más a menudo se refiere al elemento DOM real con el que se trata, mientras que $(this) devuelve un objeto jQuery que envuelve el elemento.

En JavaScript, this siempre se refiere al alcance actual. Muchas de las funciones de jQuery establecerán ese alcance para que sea el elemento con el que estás trabajando.

Por ejemplo

$("#someElement").click(function() { 
    this; // the element itself 
    $(this); // a jQuery wrapper-object around the element 
}); 

El punto es, que el objeto jQuery tiene todas las funciones de jQuery (como .detatch() o .prependTo() etc.), mientras que el elemento DOM es lo que el navegador proporciona. En el ejemplo anterior, el elemento sería exactamente el mismo que obtendría si llamara al document.getElementById("someElement")

6

$(this) refiere a un objeto jquery, this refiere a this en el ámbito actual

2

$(this) es un objeto jQuery. this se refiere al valor de this dentro del alcance actual. Normalmente utiliza $(this) dentro de una devolución de llamada cuando desea convertir el elemento que desencadenó el evento en un objeto jQuery. Puede hacer esto prácticamente a cualquier elemento DOM, por lo que $(document.getElementById("#myElement")) también es válido, y es un objeto jQuery que representa el elemento DOM con id "myElement".

Cuestiones relacionadas