2010-07-15 12 views
13

Tôi có một trang với đoạn mã sau:javascript: có được hiện tại "onclick" hàm lượng nguyên tố của

<a id="test" href="someurl" onclick="somefunction">link</a> 

tôi cần phải thực sự đọc dữ liệu 'onclick'. Do đó, tôi muốn một cái gì đó có hiệu lực của

alert(document.getElementById('test').onClick) 

Đáng buồn thay, nó trả về undefined. Tôi cần làm gì để có được somefunction?

Trả lời

23

Giả sử thẻ được tạo đúng, thuộc tính của thẻ có thể được lấy thông qua Element.getAttribute.

document.getElementById('test').getAttribute('onclick') 
// -> "somefunction" 

Hy vọng bạn không sử dụng onclick cho một số mục đích vô đạo đức như lưu trữ dữ liệu.

2

Bạn nên thử:

document.getElementById('test').onclick 
+0

này có bao giờ làm việc? Tôi không nghĩ vậy .. –

+0

Điều này không trả lời được câu hỏi. Việc truy cập thuộc tính 'onclick' của một phần tử sẽ chỉ trả về tham chiếu đến hàm được gắn với trình xử lý sự kiện nhấp chuột chứ không phải" dữ liệu onclick ", như được yêu cầu. Vui lòng xem xét xóa vì hoàn toàn không chính xác. – royhowie

+0

Điều này thực sự hiệu quả. – didierc

-1

Bạn có thể sử dụng Javascript trên thẻ neo như:

<script type="text/javascript"> 

    function testClick(id) 
    { 
    alert(id); 
    } 

</script> 

<a href="#" id="test" onclick="testclick(this.id);">Click</a> 
+4

điều này không thực sự liên quan đến câu hỏi ... Tôi đang cố gắng truy cập những gì đã có trong thẻ neo, ví dụ trong ví dụ của bạn, tôi có thể viết gì để trả về "testclick (this.id)" – Mala

+2

Vui lòng cân nhắc xóa câu trả lời này vì nó không liên quan gì đến câu hỏi được hỏi. – royhowie

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