使用href在javascript函数中传递此参数

时间:2012-02-09 16:42:30

标签: javascript hyperlink

我有代码<a href="javascript:someFunction(this);" tabindex="0">Some text</a>

是否可以将元素传递到someFunction(link) {...}并稍后使用它。

在调试模式下,我看到了对象,但所有属性都是 undefined

当我使用像<a onClick="javascript:someFunction(this);这样的onClick属性时,它运行正常。

我知道这可能不是最好的解决方案而且我已经看到了其他问题,但现在这不是我的问题。我只是需要这样做才有很多原因。

非常感谢

2 个答案:

答案 0 :(得分:2)

好的......我看到这里发生了什么。问题是,当您触发onclick事件时,会涉及一个元素。因此,您可以传递this并在函数中引用它。但是当您使用href时,您将当前位置设置为href中的任何位置。它就像你在地址栏中键入它并点击回车一样。因此,如果传递该函数this,它实际上是指DOMWindow对象。我能看到的唯一方法是将节点的id作为纯文本传递给函数。然后使用getElementById抓住它。

我强烈建议您重新考虑如何做到这一点。

答案 1 :(得分:2)

如果您不介意使用jQuery(如果不这样做,请忽略此答案),您可以将事件附加到您的链接:

$('#id_of_your_link').on('click', function(event) {
  event.preventDefault();
  someFunction(this);
});

此代码适用于键盘导航和鼠标单击:http://jsbin.com/ufapor。您可以在此处查看源代码:http://jsbin.com/ufapor/edit#javascript,html