2012-05-03 14 views
8

Si quiero guardar this como objeto DOM de jQuery y luego seleccionarlo, ¿qué método debo utilizar a continuación?

var element = $(this) 

Y a continuación, para la selección de

$(element) 

O simplemente

var element = this 

Además, si quiero a continuación para concatenar element en un selector más grande, es la siguiente:

$(element + " .class") 

la derecha t forma?

Respuesta

14
var element = $(this) 

entonces usted puede utilizar en lugar de element$(this). Ya no tiene que insertar element en $().

Por ejemplo: element.remove() en lugar de $(this).remove()

+2

Para lograr la edición '$ (element +" .class ") 'con la respuesta anterior use' element.hasClass ("clase") ' – PapaSmurf

+5

Una buena práctica es nombrar sus variables con un' '' $ '' 'entonces inmediatamente sabrá que es un objeto jQuery. –

9

$this = $(this) suele ser lo que hace la gente. El signo de dólar es un carácter válido para un nombre de variable, por lo que sirve como un buen recordatorio de que la variable es un objeto jQuery.

Puede usar $this como lo haría con cualquier elemento jQuery. Por ejemplo, $this.css('border', 'none')

+2

Debe tener cuidado con esto, particularmente si el motivo para almacenarlo en una variable es referirse a él en un contexto diferente (evento click secundario, resultado AJAX) donde '$ (this)' se refiere a algo diferente. – yoozer8

+0

@jim, cierto. Puede ser confuso cuando desea referirse a $ this dentro de una función de éxito AJAX o algo así. – CambridgeMike

+4

+1, aunque prefiero usar '$ that' ya que cuando uso esto, generalmente lo necesito en otro ámbito que ya usa un' this' diferente, básicamente para ser menos confuso. – Louis

2

var element = $(this) para almacenar

continuación element para seleccionar

2

Si desea seleccionar todos los elementos con myClass clase, que debe hacer:

var $this = $(this); 
var myClassElements = $(".myClass", $this); 
+0

Esto es exactamente lo que hago, y francamente superior (y correcto) en comparación con otras respuestas. –

+0

@OlliM no 'myClassElements' seleccionará' this' dentro de 'myClass'? – ilyo

+0

Debe tener cuidado con esto, particularmente si el motivo para almacenarlo en una variable es referirse a él en un contexto diferente (evento de clic secundario, resultado de AJAX) donde $ (esto) se refiere a algo diferente. – yoozer8

1

La manera correcta es:

var element= this.html(); 
$(element).find(div) /* from modefy div you can change it with any other selector */ 
$(element).attr({"class":"myClass","other atrribut":"it's value"}); 

Espero que sea útil.

Cuestiones relacionadas