this
es una cosa JavaScript. Se refiere al "contexto" en el que se está ejecutando una función. Para la mayoría de los manejadores de eventos, es el elemento DOM ("en bruto") que está escuchando un evento. En otras situaciones, significará otras cosas; Buscar en Google "this
en JavaScript" puede ser esclarecedor.
me dicen que es el elemento "en bruto" DOM porque jQuery se utiliza a menudo para envoltura elementos DOM de civil en una envoltura de jQuery, para que pueda utilizar métodos jQuery como attr
en lugar de los habituales (getAttribute
, setAttribute
, etc.). Este ajuste se realiza con la función $
, y es allí donde ve $(this)
. Por ejemplo:
this.getAttribute("href")
/* or */ someElement.getAttribute("href")
es la misma que
$(this).attr("href")
/* or */ $(someElement).attr("href")
$this
o this$
es sólo un nombre de variable.Sin embargo, a menudo es convencional para hacer una asignación como
var $this = $(this);
La razón de esto es evitar el recurso continuamente la función $
, que es un poco caro, ya que crea un nuevo objeto envoltorio jQuery cada vez. Si almacena el elemento envuelto en una variable, gana ligeramente en eficiencia.
En casos raros, this
ya podría haber una envoltura de jQuery. El caso que aparece a menudo para mí es cuando escribo complementos de jQuery. En ese caso, puede hacer cosas como this.attr("id")
directamente, sin concluir primero, porque ya está envuelto. En los casos habituales (controladores de eventos, $.each
, etc.) es necesario el envoltorio.
'this' es una referencia de js y poner $() simplemente lo envuelve con la clase jquery. Lo que se refiere a $ this - es solo un nombre de variable (no predefinido) y se usa generalmente en los plugins de jquery solo para tener siempre una referencia a la clase primaria de 1er nivel de las clases secundarias –