2012-02-28 16 views
36

Jak mogę przekonwertować obiekt DOM JavaScript na obiekt jQuery?Obiekt DOM JavaScript do obiektu jQuery

<tr onclick="changeStatus(this)"> 

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

Co mam napisać zamiast XXX? Wiem, że mogę dokonać obejścia przy użyciu selektora id i id, ale nie jest to takie eleganckie. Czy istnieje sposób przekonwertowania obiektu DOM js do obiektu jQuery lub użycia słowa kluczowego this w jQuery?

Odpowiedz

60
var $this = $(myObject); 

$this to obiekt jQuery. Możesz tworzyć obiekty jQuery z elementów DOM.

<tr onclick="changeStatus(this)"> 

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

Chciałbym polecić robi swoje wydarzenie wiązania z jQuery, a także:

<tr class="change-status"> 

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

To jest dobre, bo teraz cały kod JS jest w jednym miejscu i może być aktualizowana (moim zdaniem) łatwiejsze. Zwróć uwagę, że klasa I dodana do elementu <tr> nie jest konieczna, jeśli chcesz powiązać wszystkie elementy <tr> w DOM.

+0

Masz całkowitą rację odnośnie obsługi zdarzenia w języku JavaScript. Ale są sytuacje, w których definiowanie programu obsługi zdarzeń nie jest w twojej dłoni. Na przykład wtyczka innej firmy, w której obsługiwane jest zdarzenie 'click'. Twój pierwszy przykład pomógł mi więcej. W każdym razie idealne rozwiązanie! –

9

Po prostu zapakuj obiekt DOM jako pierwszy argument.

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

Najprostszy. Pracuje dla mnie. – vapcguy

Powiązane problemy