Html 在一个页面上多次使用同一个id是否是一种糟糕的做法,即使我没有解析该页面?

Html 在一个页面上多次使用同一个id是否是一种糟糕的做法,即使我没有解析该页面?,html,backbone.js,html-parsing,marionette,backbone-views,Html,Backbone.js,Html Parsing,Marionette,Backbone Views,我知道在一个页面中多次使用同一id会创建格式不正确的html。使用jquery选择器时,只返回id为的第一个元素,但在我的应用程序中,我不应该遇到这个问题 我有一个项目列表视图,所有这些视图都有一个我需要参考的元素。由于每个项目只能访问自己的$el,因此为某个项目传入id选择器不会产生任何冲突(即使页面上有多个) 我用小提琴模拟了我的意思 在这个项目中,我不做任何页面范围的解析,所以我相信它应该是安全的。有什么理由我不应该这样做吗 您只知道当前的需求是什么 最好遵守标准和有效的代码/标记,因为您

我知道在一个页面中多次使用同一id会创建格式不正确的html。使用jquery选择器时,只返回id为的第一个元素,但在我的应用程序中,我不应该遇到这个问题

我有一个项目列表视图,所有这些视图都有一个我需要参考的元素。由于每个项目只能访问自己的
$el
,因此为某个项目传入id选择器不会产生任何冲突(即使页面上有多个)

我用小提琴模拟了我的意思


在这个项目中,我不做任何页面范围的解析,所以我相信它应该是安全的。有什么理由我不应该这样做吗

您只知道当前的需求是什么

最好遵守标准和有效的代码/标记,因为您不知道将来会发生什么

在这个应用程序中,您很可能最终不得不使用jQuery,然后就会遇到麻烦

以同样的方式设计多个元素的解决方案是使用CSS类——绝对没有理由不这样做,因为它与使用ID一样简单。

还有其他东西可以读取HTML文档,而不仅仅是浏览器


根据HTML规范,id属性在页面上必须是唯一的(这不是web设计师/开发人员刚刚发明的标准)

是的,这是一种不好的做法。
id
应该是对该元素的唯一引用。改用

绝对正确。HTML、CSS和JavaScript规范是关于浏览器在遇到特定代码时的行为的协议。当你做任何不符合规范的事情时,浏览器不会做出很多保证,而且他们会做出更少的保证

正如Oded在他对这个问题的评论中提到的,浏览器从代码中构建DOM树,对其进行样式设置,并对其进行渲染。因此,根据给定浏览器的决定,它们可能会遇到具有相同id的多个元素的问题


那么,为什么要冒险呢?我想不出有哪一个实例不能用类(或者什么都不能用)来代替id。

您可能无法通过页面进行解析,但浏览器可以。问题:您为什么要这样做?回答:,但不要。有什么理由不能使用类吗?