html - 一个 HTML 元素可以两次具有相同的属性吗?

标签 html

我正在考虑编写代码来生成可能具有重复属性的 HTML 标记,如下所示:

<div data-foo="bar" class="some-class" data-foo="baz">

这是合法的 HTML 吗? data-foo 中的一个是否优先于另一个?我可以依靠半现代浏览器(IE >= 9)来解析它而不会窒息吗?

还是我要在这里做一些非常愚蠢的事情?

最佳答案

在一个元素中两次具有相同的属性名称是无效的。对此的权威引用有些复杂,因为旧的 HTML 版本名义上是基于 SGML 的,而对 SGML 标准的规范性引用暗示了该限制。在 HTML5 PR 中,第 8.1.2.3 节 Attributes明确地说:“在同一个开始标记上绝不能有两个或更多属性,它们的名称是彼此不区分大小写的 ASCII 匹配项。”

实际发生的情况是后一个属性被忽略了。好吧, future 的浏览器可能会不这样做。在 DOM 中,属性作为元素节点的属性出现在 attributes 对象中,因此没有自然的方式来存储两个值。

关于html - 一个 HTML 元素可以两次具有相同的属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26341507/

相关文章:

html - Bootstrap 自定义内容

javascript - 如果取消选中单选按钮,则删除单元格的值

javascript - 从具有 ID 的 div 中删除没有 ID 的图像

javascript - 选择导致 CSS 元素改变颜色的 HTML 链接?

jQuery 在表格单元格中找不到输入

Javascript 警报和提示

javascript - 创建一个 iframe 并将其附加到所有现有目标 div 并填充 src 属性

javascript - html 输入显示不同的文本到它发布的值

python - 如何从我收到的电子邮件中的超链接中提取 URL?

ruby-on-rails - send_file 与 html5 下载属性