<a href="javascript:foo(this)">传递Window,我想要标签元素本身

spr*_*aff 28 html javascript

我希望这打印"a",因为当我调用时foo(this),参数似乎是链接标记.

<script type="text/javascript">
    function foo (e) {
        alert (e .tagName);
    }
</script>
<a href="javascript:foo(this)">click</a>
Run Code Online (Sandbox Code Playgroud)

相反,它打印"未定义".如果我alert(e)说"对象窗口".我如何foo知道推出了哪个元素?没有通过/查找ID.

epa*_*llo 33

您不应该将href用于JavaScript.糟糕的做法,而是使用onclick this并将神奇地指向链接.

<a href="#" onclick="foo(this)">click</a>
Run Code Online (Sandbox Code Playgroud)

您还需要取消链接的单击操作.返回false或使用preventDefault取消事件.

最好使用Unobtrusive JavaScript附加事件

  • 如果我们对编码哲学很挑剔我认为值得指出`href ="javascript:void(0);"`更安全(没有返回错误,没有基本URL干扰). (5认同)
  • 此外,`href="javascript:void(0);"` 比 `href="#"` 更好,因为它不会让浏览器的视口一点击链接就跳转到文档的顶部。 (2认同)

Siv*_*ran 5

你也可以直接这样做

<a href="#" onclick="alert(this.tagName);">click</a>?
Run Code Online (Sandbox Code Playgroud)