只是好奇地想知道如果我在我的网页中包含多个具有相同ID的元素,我会给自己带来什么问题?
例如:
<div id='someID'>Some Content</div> <div id='someID'>Some Other Content</div>
解决方法
当您尝试从JavaScript引用这些元素时,它将无法解析您所引用的元素.根据您运行的特定JavaScript解释器,您可能会遇到错误或未定义的行为 – 这两种情况都是不受欢迎的.
HTML规范声明Id应该是唯一的,因此您的HTML将被视为无效并可能导致浏览器退回到怪异模式渲染,甚至完全拒绝呈现您的页面(尽管这不太可能,并且所有当前浏览器都将呈现一些东西 – 从技术上讲,如果你不遵守规范,浏览器没有义务做任何事情,但拒绝你的页面).
如果您希望通过以下方式识别多个元素,则应考虑使用类名:
<div class="someClass">Some Content</div> <div class="someClass">Some Other Content</div>
Blair在下面的评论中指出,如果你需要从JavaScript中按类搜索元素,你可以通过从具有ID的最近元素开始加速搜索,并告诉它要查找的节点类型.这可以在很多情况下保持快速访问速度,但不会破坏重复ID的任何规则:
HTML: <div id="myNearestID"> <div class="someClass">Some Content</div> <div class="someClass">Some Other Content</div> </div> JavaScript+JQuery: $('#myNearestID div.someClass')