<button onclick = ...>和<a href="#" onclick=.../>之间有什么区别?

Sin*_*ing 5 javascript asp.net-mvc

我发现很多次页面都使用"a"标签,并希望将其设为按钮.它是这样的:

<a href="#" class="button" onclick="...." />
Run Code Online (Sandbox Code Playgroud)

我很困惑为什么不只是使用"按钮"标签?像这样:

<button onclick="....">button</button>
Run Code Online (Sandbox Code Playgroud)

有什么区别?我真的想学习它,谢谢!

还有一个情况问题:

三个"按钮式<a>标签"如下:

在此输入图像描述

暗示:

  • 不同的人打电话给ajax然后得到不同的期间记录
  • 需要使用onclick ="location.replace()"因为顺利回到最后一页.

原始代码:

<a href="url" class="btn" >Today</a> 
Run Code Online (Sandbox Code Playgroud)

我改为:

<a href="#" onclick="location.replace(url)" class="btn" >Today</a> 
Run Code Online (Sandbox Code Playgroud)

考虑关于:

<button onclick="location.replace(url)">Today</button>
Run Code Online (Sandbox Code Playgroud)

在这种情况下你会做什么?使用按钮标签有什么不对吗?

Lua*_*aan 4

这基本上是一个历史文物。

它源于将自定义样式应用于锚点要容易得多的时代。您可以通过在锚点本身内部使用更多元素来轻松构建自动调整大小的“按钮外观”锚点。

如今,有了增强的 CSS 选项和更好的浏览器兼容性,这已经不再是必要的了。当button是正确的语义元素时,您没有理由使用a它。

因此,使用锚点链接到其他页面。它应该始终有一个href,而不是仅仅使用#and onclick。现在,您仍然可以使用onclick- 只需确保将href您定向到相同的数据onclick即可。当您希望有一种方法让搜索机器人导航您的网站时,这非常方便,即使实际用户将看到例如响应更快的界面(例如,通过 AJAX 下载更新的内容)。确保在新窗口/选项卡中打开链接的常用方法仍然有效(ctrl+单击、右键单击和中键单击都不应执行onclick操作)。

按钮是与当前所在页面交互的元素,无论这意味着执行客户端脚本还是将表单发送到服务器。

编辑

通过对您的问题进行编辑,很明显您应该简单地使用带有普通href. 没有理由使用 或onclicka button,您只是创建一个简单的超链接,这就是锚点的用途。