2012-02-28 5 views
36

どのようにしてJavaScript DOMオブジェクトをjQueryオブジェクトに変換できますか?JavaScript DOMオブジェクトからjQueryオブジェクトへ

<tr onclick="changeStatus(this)"> 

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

XXXの代わりに何を書きますか? 私はidとidセレクタを使って回避策を作ることができますが、それほどエレガントではありません。 js DOMオブジェクトをjQueryオブジェクトに変換する方法はありますか?または、thisキーワードをjQueryで使用していますか?

答えて

60
var $this = $(myObject); 

はjQueryオブジェクトです。 DOM要素からjQueryオブジェクトを作成できます。

<tr onclick="changeStatus(this)"> 

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

私もjQueryを使って結合あなたのイベントを行うことをお勧めしたいと思います。今、すべてのJSコードが一つの場所にあり、(私の意見で)更新することができますので、

<tr class="change-status"> 

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

これはいいですもっと簡単に。 DOMのすべての<tr>要素にバインドする場合は、<tr>要素に追加したクラスIは不要です。

+0

JavaScriptでイベントハンドラが使用されていることは間違いありません。しかし、イベントハンドラを定義することがあなたの手にない状況があります。たとえば、 'click'イベントがそれらによって処理される第三者のプラグインです。だから最初の例は私をもっと助けました。とにかく完璧な解決策! –

9

最初の引数としてDOMオブジェクトを渡してください。

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

Simplest。私のために働く。 – vapcguy

関連する問題