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

使用href在javascript函数中传递此参数,javascript,hyperlink,Javascript,Hyperlink,我有代码 是否可以将元素传递到someFunction(link){…}并在以后使用它 在调试模式下,我看到了对象,但所有属性都未定义 当我使用onClick属性时,比如Ok。。。我知道这里发生了什么。问题是,当您触发onclick事件时,涉及到一个元素。因此,您可以传递此并在函数中引用它。但是当您使用href时,您正在将当前位置设置为该href中的任何位置。这与在地址栏中键入并按enter键相同。因此,如果您传递该函数this,它实际上是指DOMWindow对象。我能看到的唯一解决方法是将节点

我有代码

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

在调试模式下,我看到了对象,但所有属性都未定义


当我使用onClick属性时,比如
Ok。。。我知道这里发生了什么。问题是,当您触发onclick事件时,涉及到一个元素。因此,您可以传递此
并在函数中引用它。但是当您使用
href
时,您正在将当前位置设置为该
href
中的任何位置。这与在地址栏中键入并按enter键相同。因此,如果您传递该函数
this
,它实际上是指DOMWindow对象。我能看到的唯一解决方法是将节点的
id
作为纯文本传递给函数。然后用
getElementById
抓取它


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

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


不过,我强烈建议您重新考虑如何执行此操作。

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

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

此代码适用于键盘导航和鼠标单击:。您可以在此处看到源代码:

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

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

此代码适用于键盘导航和鼠标单击:。你可以在这里看到源代码:

你试过了吗?试试看它是否管用。在我看来它是正确的。不要做内联javascript!没有借口,只是不要这样做。
onclick
有一个
this
参数,因为它会触发一个事件
href
没有。@Blender:我可以用href传递这个吗?@Mathletics:如果元素有焦点,我如何实现在按Enter键时发生的动作,而这个动作仍然在javascript方法中传递?您尝试过吗?试试看它是否管用。在我看来它是正确的。不要做内联javascript!没有借口,只是不要这样做。
onclick
有一个
this
参数,因为它会触发一个事件
href
没有。@Blender:我可以用href传递这个吗?@Mathletics:如果元素有焦点,我如何实现在按Enter键时发生的动作,并且仍然通过javascript方法传递这个动作?似乎这是我的答案,我不知道这样做非常有用。似乎这是我的答案,我不知道我可以这样做非常有帮助。谢谢,我找到了解决方案。谢谢,我找到了解决方案。