【发布时间】:2012-11-29 02:14:00
【问题描述】:
Stack Overflow 上有很多关于 id 与 class 的问题,但这些问题几乎总是与 CSS 相关 - 普遍接受的答案是使用类来设置一组特定元素的样式,并使用 id具体实例。有道理,够公平。
然而,我发现随着我越来越多地使用 Javascript/jQuery/ajax,这种方法开始变得不那么明确,我发现应该为语义元素提供 id 的情况,但因为可能有多个我应该使用类的实例。
这是我的意思的一个例子:
查看 Stack Overflow 的 markdown 问题编辑器上的工具栏 - 每个按钮都有一个 ID 来唯一标识它。非常有意义 - 它是一个执行特定功能的按钮,并且可能有基于该 ID 的脚本。
现在假设我正在构建一个富 Web 应用程序,并且有一个页面有两个选项卡,每个选项卡上都有一个降价编辑器。这是否意味着工具栏按钮现在应该使用 classes 来识别它们?
这似乎是错误的。
另一个示例:我正在开发一个照片库网站,该网站在每张照片上都覆盖了一个小工具栏。约定说因为这些按钮有多个实例,所以我应该使用类。真的吗?
所以我的问题是......
- 如果我在一个页面上犯了重复 ID 的罪行,哪些浏览器实际上会崩溃?
- 对于确实会中断的浏览器,是否只是 CSS 样式会中断,还是 jQuery 选择器也会中断。
- 在上述情况下使用重复的 ID 真的很糟糕吗?
【问题讨论】:
-
很棒的问题。我打出了比这更糟糕的东西,你一针见血。很高兴我在提交之前找到了它。
标签: jquery html css-selectors