是否可以使用锚标记而不包括href属性,而是使用JavaScript单击事件处理程序?因此我将完全省略href,甚至不让它为空(href="")。


当前回答

只需在您的工作组件中添加波纹管代码以删除此警告,就是这样。

/* eslint-disable jsx-a11y/anchor-is-valid */

其他回答

如果你必须使用href来实现向后兼容性,你也可以使用

<a href="javascript:void(0)">link</a>

如果您不想使用该属性,则可以使用#

只需在您的工作组件中添加波纹管代码以删除此警告,就是这样。

/* eslint-disable jsx-a11y/anchor-is-valid */

在HTML5中,使用不带href属性的a元素是有效的。它被认为是一个“占位符超链接”。

例子:

<a>previous</a>

在w3c锚标记参考页面上查找“占位符超链接”:https://www.w3.org/TR/2016/REC-html51-20161101/textlevel-semantics.html#the-a-element。

维基上也有提到: https://www.w3.org/wiki/Elements/a

占位符链接用于想要使用锚元素,但不让它导航到任何地方的情况。这对于在导航菜单或面包屑跟踪中标记当前页面非常方便。(旧的方法是使用span标记或带有名为“active”或“current”的类的锚标记来设置样式,并使用JavaScript来取消导航。)

如果您希望在运行时通过JavaScript动态设置链接的目的地,占位符链接也很有用。您只需设置href属性的值,锚标记就可以单击了。

参见:

https://stackoverflow.com/a/10510353/19112 http://www.html5in24hours.com/2012/06/8-ways-to-get-started-with-html5-today/ http://webdesign.about.com/od/html5tutorials/qt/html5-placeholder-links.htm

如果没有href属性,标记也可以使用。与这里的许多答案相反,当没有href时,实际上有创建锚的标准原因。从语义上讲,“a”意味着锚或链接。如果你把它用在任何跟这个意思一样的地方,那就没问题。

不带href的a标记的一个标准用法是创建命名链接。这允许你使用一个带有name=blah的锚,稍后你可以创建一个带有href=#blah的锚来链接到当前页面的指定部分。但是,这已经被弃用了,因为您也可以以相同的方式使用id。举个例子,你可以使用id=header的header标签,然后你可以使用指向href=#header的锚。

然而,我的观点并不是建议使用name属性。只提供一个不需要href的用例,并解释为什么不需要href。

在某些浏览器中,如果你没有给出href属性,你会遇到问题。我建议你这样写代码:

<a href="#" onclick="yourcode();return false;">Link</a>

你可以用你自己的函数或逻辑替换code(),但记得添加return false;最后的声明。