从超链接调用函数时的此关键字

时间:2017-08-23 17:23:50

标签: javascript this

我的网页上有很多链接,如下所示:

<a href="javascript:Test.Test(this);">Testing</a>

使用this关键字,我希望获得该功能的HTML元素所有者。但是,它显示了我window对象。这是为什么?我如何获得(上面使用的代码)HTML元素,该函数的所有者?

在我的网页上,HTML结构要复杂得多。每个超链接都在其他元素内部,因此如果this显示当前元素,则很容易获得父元素。

var Test = function(){
  
  var Test = function(element){
    
    debugger;
    
  }
  
  return {
    Test: Test
  }
}();
<div data-iuser_key='49499'>
<a href="javascript:Test.Test(this);">Testing</a>
</div>

1 个答案:

答案 0 :(得分:1)

你期待什么?您的代码是在javascript:内运行的,它没有引用目标元素。默认情况下,this引用window

相反,请使用正确的点击处理程序:

<a href="#" onclick="Test.Test(this)">