2012-02-28 72 views
36

如何將JavaScript DOM對象轉換爲jQuery對象?jQuery對象的JavaScript DOM對象

<tr onclick="changeStatus(this)"> 

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

我應該寫什麼來代替XXX? 我知道我可以使用一個ID和一個ID選擇器,但它不是那麼優雅。 有什麼辦法將js DOM對象轉換爲jQuery對象或在jQuery中使用this關鍵字?

回答

60
var $this = $(myObject); 

$this是一個jQuery對象。您可以從DOM元素創建jQuery對象。

<tr onclick="changeStatus(this)"> 

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

我想推薦做你的事件與jQuery結合以及:

<tr class="change-status"> 

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

這是好的,因爲現在所有的JS代碼是在一個地方,可以被更新(在我看來)更容易。請注意,如果要綁定到DOM中的所有<tr>元素,則添加到<tr>元素的類不是必需的。

+0

您對JavaScript中的事件處理程序絕對正確。但有些情況下,定義事件處理程序不在你的手中。例如,由他們處理'click'事件的第三方插件。所以你的第一個例子對我更有幫助。反正完美的解決方案! – 2017-11-18 05:52:14

9

只需將傳入DOM對象作爲第一個參數封裝即可。

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

最簡單。適用於我。 – vapcguy 2015-01-02 22:33:16