2012-02-28 18 views
36

¿Cómo puedo convertir un objeto DOM de JavaScript en un objeto jQuery?Objeto DOM de JavaScript para el objeto jQuery

<tr onclick="changeStatus(this)"> 

function changeStatus(myObject) { 
     XXX.removeClass(); 
} 

¿Qué debo escribir en lugar de XXX? Sé que puedo hacer una solución usando un id y un selector de id, pero no es tan elegante. ¿Hay alguna forma de convertir un objeto DOM js en un objeto jQuery o utilizando la palabra clave this en jQuery?

Respuesta

60
var $this = $(myObject); 

$this es un objeto jQuery. Puede crear objetos jQuery a partir de elementos DOM.

<tr onclick="changeStatus(this)"> 

function changeStatus(myObject) { 
     $(myObject).removeClass(); 
} 

me gustaría recomendar hacer su acontecimiento de unión con jQuery así:

<tr class="change-status"> 

$('.change-status').on('click', function() { 
    $(this).removeClass(...); 
}); 

Esto es bueno porque ahora todo el código JS está en un lugar y se puede actualizar (en mi opinión) más fácilmente. Tenga en cuenta que la clase que agregué al elemento <tr> no es necesaria si desea enlazar a todos los elementos <tr> en el DOM.

+0

Tiene toda la razón sobre que el controlador de eventos está en JavaScript. Pero hay situaciones donde la definición del controlador de eventos no está en su mano. Por ejemplo, un complemento de terceros donde el evento 'click' es manejado por ellos. Entonces tu primer ejemplo me ayudó más. De todos modos la solución perfecta! –

9

Simplemente ajuste el paso al objeto DOM como primer argumento.

$(myObject).removeClass('foo'); 
+0

Simplest. Funciona para mi. – vapcguy

Cuestiones relacionadas