使用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方法传递这个动作?似乎这是我的答案,我不知道这样做非常有用。似乎这是我的答案,我不知道我可以这样做非常有帮助。谢谢,我找到了解决方案。谢谢,我找到了解决方案。