使用此代码时:
<a href="http://www.google.com" onclick="n();">
现在如何获取元素类型,如果它是 img
则获取 src
值,但如果它是 a
则获取 href
值。
我已经尝试过:
function n(){
document.print(this);
if(this === "a"){
window.open(this.href);
} else if(this === "img"){
window.open(this.src);
}
}
最佳答案
this
的值由函数的调用方式决定。
点击事件处理程序是在元素的上下文中调用的,因此 this
就是该元素。
n
在没有显式上下文的情况下被调用,因此它使用默认上下文:window
。
如果你想在元素的上下文中调用n
,那么你需要明确地这样做:
onclick="n.call(this);"
一旦获得,您可以测试 this.tagName
以查看它是什么类型的元素。
或者,将 this
作为参数传递给 n
:
n(this);
function n(element) {}
<小时/>
或者,停止使用内部事件属性。它们迫使您将函数设为全局函数,并在 HTML 中乱扔 JavaScript。以编程方式绑定(bind)您的事件处理程序。
document.getElementById('myAnchor').addEventListener('click', n);
关于javascript - 检查 "this"的元素类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21497419/