2016-08-29 14 views
7

Tôi muốn kiểm tra thuộc tính cụ thể của mục tiêu sự kiện trong click sự kiện:Sử dụng phương pháp jQuery trên event.target

$('div').on('click', function(e) { 
    console.log(e.target.attr('class')); 
}); 

Điều này dẫn đến lỗi trong trình duyệt của giao diện điều khiển:

main.js:47 Uncaught TypeError: e.target.attr is not a function

Không phải là một event.target jQuery đối tượng quá?

+2

cũng console.log ($ (this) .attr ('class')); –

+3

@KapitulaAlexey Không, 'event.target' có thể khác với' this' –

Trả lời

6

e.target không phải là đối tượng jQuery theo mặc định, nó là phần tử DOM. Bạn phải cast nó:

console.log($(e.target).attr('class')); 

dụ làm việc:

$('div').on('click', function(e) { 
 
    console.log($(e.target).attr('class')); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="test">click me</div>

0

Nó là tốt hơn không để trộn với javascript và mã jquery, bởi vì rất khó để xử lý hoặc hiểu.

$('div').on('click', function(e) { 
    //console.log(e.target.className); javascript 
    console.log($(this).attr('class')); //jquery 
}); 
+3

event.target không bằng $ (this) –

+2

jQuery _is_ Mã Javascript. –

+0

Có jQuery là để làm cho nó dễ dàng hơn nhiều để sử dụng JavaScript, Vì vậy, tại sao chúng tôi sử dụng mã JS một lần nữa mà không cần –

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