1

这是有效的 HTML 吗?

<a href="#" id="whatever">Home</a>

我正在使用 ID 调用一个 id 为“whatever”的 jQuery 函数。我找不到任何说明这是否有效的东西。我正在争论是否是。

另外,没有选择一个单选按钮组是有效的 HTML 吗?

4

3 回答 3

1

在大多数浏览器中,在 href 属性中添加一些内容是有效的,并且必须有一些东西<a>来激活元素的链接行为。(虽然href=""会导致浏览器打开当前“文件夹”的索引页面。)

如果链接代表状态的一些变化,那么最好放更多(例如'#home'),所以如果用户按下后退/前进/刷新,您可以在页面加载时恢复状态 - 这在开发过程中也是一个福音,如果在开发页面时,您往往会经常刷新页面。

--

未选择的单选组比较棘手,HTML 4 验证器会让它通过,但 HTML 4 规范说必须始终检查一个(由于用户代理行为不同,作者应确保在每组单选按钮中,一个最初是“打开”的。)。据我所知,HTML 5 放宽了这一点,因为我在 HTML 5 规范中找不到任何等效的措辞。

但是,这样一组单选按钮处于无效状态,因此不应将其用于捕获可选输入(如果用户选中一个,则无法取消选中它)。

如果选择了默认值(通常是最常见的选择),或者如果它是可选的,则最好为用户提供 null 的显式选项(例如“以上都不是”)

于 2013-09-04T01:05:55.420 回答
0

您的 HTML 完全有效。

正如一个建议,您的 jQuery 函数应该阻止锚标记的默认行为:

jQuery("#whatever").click(function(evt) {
    evt.preventDefault(); // Prevent the default anchor tag behavior

    // Do what you need here
});

这样,您将在使用href="#".

于 2013-09-04T00:59:09.353 回答
0

HTML 标记是有效的并且符合 HTML 规范,该规范引用了有关href属性值的 URI 规范。当前的权威规范是RFC 3986统一资源标识符 (URI):通用语法,也称为 Internet 标准 STD 66。根据它,以及旧的 URI 规范,#是同文档参考。规范中的相关条款是 3.5 和 4.4。

跟随链接href="#"意味着停留在当前文档中,不重新加载,但将文档定位在其开头(“跳转到开头”)。因此,它不是这样的无操作,即使href="#"已被用于使元素或多或少成为假链接。

另一方面,a没有任何href属性的元素也是有效的。在视觉渲染、脚本、链接分析等中,它不会被视为一个链接。如果它不是一个链接,就不要让它成为一个链接。

于 2013-09-04T07:37:55.903 回答