我有代码<a href="javascript:someFunction(this);" tabindex="0">Some text</a>
是否可以将元素传递到someFunction(link) {...}
并稍后使用它。
在调试模式下,我看到了对象,但所有属性都是 undefined 。
当我使用像<a onClick="javascript:someFunction(this);
这样的onClick属性时,它运行正常。
我知道这可能不是最好的解决方案而且我已经看到了其他问题,但现在这不是我的问题。我只是需要这样做才有很多原因。
非常感谢
答案 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