9

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

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

我在这里模拟了我在小提琴中的意思

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

4

4 回答 4

6

您只知道当前的要求是什么。

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

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

以相同方式为多个元素设置样式的解决方案是使用 CSS 类 - 绝对没有理由不这样做,因为它就像使用 id 一样简单。

于 2013-01-21T19:44:51.670 回答
3

http://www.w3.org/TR/WCAG20-TECHS/H93.html

http://www.w3.org/TR/html401/struct/global.html#adef-id

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

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

于 2013-01-21T19:49:03.867 回答
0

绝对地。HTML、CSS 和 JavaScript 的规范是关于浏览器在遇到特定代码时的行为方式的协议。当您做任何不合规范的事情时,浏览器不会做出太多保证,而且它们做出的保证更少,他们都会同意。

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

那么,为什么要冒险呢?我想不出任何不能使用类(或根本没有)来代替 id 的实例。

于 2013-01-21T20:00:26.497 回答
0

是的,这是不好的做法。Anid应该是对该元素的唯一引用。改为使用class

于 2013-01-21T19:49:08.010 回答