2012-02-28 51 views
36

Làm cách nào để chuyển đổi đối tượng DOM JavaScript sang đối tượng jQuery?Đối tượng JavaScript DOM đối tượng jQuery

<tr onclick="changeStatus(this)"> 

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

Tôi nên viết gì thay cho XXX? Tôi biết tôi có thể thực hiện giải pháp thay thế bằng cách sử dụng id và bộ chọn id, nhưng nó không quá thanh lịch. Có cách nào để chuyển đổi đối tượng DOM js thành đối tượng jQuery hoặc sử dụng từ khóa this trong jQuery không?

Trả lời

60
var $this = $(myObject); 

$this là đối tượng jQuery. Bạn có thể tạo các đối tượng jQuery từ các phần tử DOM.

<tr onclick="changeStatus(this)"> 

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

Tôi muốn khuyên bạn nên làm sự kiện của bạn ràng buộc với jQuery cũng như:

<tr class="change-status"> 

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

này là tốt đẹp bởi vì bây giờ tất cả các mã JS là ở một nơi và có thể được cập nhật (theo ý kiến ​​của tôi) dễ dàng hơn. Lưu ý rằng lớp tôi đã thêm vào phần tử <tr> là không cần thiết nếu bạn muốn liên kết với tất cả các phần tử <tr> trong DOM.

+0

Bạn hoàn toàn đúng về trình xử lý sự kiện trong JavaScript. Nhưng có những tình huống mà việc xác định trình xử lý sự kiện không nằm trong tay bạn. Ví dụ như một plugin của bên thứ ba trong đó sự kiện 'click' được xử lý bởi chúng. Vì vậy, ví dụ đầu tiên của bạn đã giúp tôi nhiều hơn. Dù sao giải pháp hoàn hảo! –

9

Chỉ cần bọc đối tượng DOM làm đối số đầu tiên.

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

Đơn giản nhất. Làm việc cho tôi. – vapcguy

Các vấn đề liên quan