为什么这两行创建不同的值this?
<div>
<a href="#" id= "li2" onclick="alert(this)"> a link </a>
</div>
<p id= "p2" onclick="alert(this)"> a paragraph </p>
Run Code Online (Sandbox Code Playgroud)
第一个用文件的URI警告,第二个用"HTML段落元素"警告.换句话说,第二个上下文是DOM元素,但第一个是主要上下文.
我做的这个研究有很多,其中一些是有点过我的头,所以如果有人知道答案,你可以哑下来给我吗?
Roc*_*mat 28
在内联JavaScript事件中,this是触发事件的元素.这些都是onclick事件,this您点击的元素也是如此.
使用时alert(),它将其参数转换为字符串.将<a>元素对象转换为字符串时,将获得其href值.当您将<p>元素转换为字符串时,您只需获得[object HTMLParagraphElement]它,因为它没有自定义toString.
Revalent docs:https://developer.mozilla.org/en-US/docs/Web/API/URLUtils/toString