1

今天,我正在将具有一些过时属性的页面转换为对 XHTML 更友好,并遇到了锚标记的主题。具体来说: <a name="someName"></a>

在将锚标记转换为 之后<a id="someName"></a>,我的 IDE 给了我一些关于不要在我的锚标记中使用重复 ID 的友好建议。事实证明,W3 也是如此

id 和 name 属性共享相同的名称空间。这意味着它们不能在同一文档中同时定义具有相同名称的锚点。允许使用这两个属性为以下元素指定元素的唯一标识符:A、APPLET、FORM、FRAME、IFRAME、IMG 和 MAP。当两个属性都用于单个元素时,它们的值必须相同。

尽管有重复,该页面仍然可以正常工作,没有任何行为异常。

页面逻辑保证只有一个 HTML 元素使用给定的名称或 ID 呈现,因此不#someName存在重复的 href。

考虑到这一点:

上述用例是否仍然违反 W3C 使用重复名称/ID 的准则?

将页面转换为使用唯一 ID 需要付出很大的努力,但这样做可能会有好处。我对此很陌生,所以如果我遗漏了一些纯粹的哲学或明显的东西,我深表歉意。

4

1 回答 1

3

IDs are unique in the DOM. This has an easily noticeable effect on JavaScript: document.getElementById('someName') will only select one of multiple id="someName" elements that may be available. It's probably the first, but there is no way to guarantee which one.

于 2013-05-20T23:59:28.353 回答