2015-08-03 60 views
-8
<td><a href="javascript:alert(this)">dele</a></td> 
<li onclick ="alert(this)"></li> 

這裏,爲什麼「a」的「this」是窗口,「li」的「this」是HTMLLiElement?javascript「這個」問題錯誤?

+0

這是一個移動目標 https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Operators/這個 – Unlockedluca

回答

1

當點擊<td><a href="javascript:alert(this)">dele</a></td>,則alert(this)確實在當前頁面上運行。它作爲匿名函數與上下文分開運行,因此Window

BUT,在<li onclick ="alert(this)"></li>,具有其爲HtmlLiElement<li>上下文中的同一頁上的alert(this)運行情況。

+0

它沒有在新窗口中運行,它作爲匿名函數運行。 – Mouser

+0

@Mouser更新了我的答案,謝謝你的建議:) –

+0

機體文件對不對? – user3487875

6

當調用事件處理程序時,上下文就是事件的目標。但處理href屬性不是事件處理程序,那裏沒有目標,因此上下文爲window

用途:

<a href="#" onclick="alert(this)">dele</a> 
1

在您的使用情況this如何要調用alert確定。首先,您使用href在全局上下文中執行語句。在第二種情況下,您已將事件處理程序附加到li元素,這意味着執行上下文就是該元素。