当前位置:  开发笔记 > 编程语言 > 正文

意见:在HTML中,可能是重复ID还是非标准属性?

如何解决《意见:在HTML中,可能是重复ID还是非标准属性?》经验,为你挑选了4个好方法。

想让你的javascript知道一个特定的dom节点对应于数据库中的记录似乎很常见.你是怎么做到的?

我看到的一种常见方法是使用类的类和id的id:

虽然这有一个轻微的HTML标准问题 - 如果您在页面上有多种类型的记录,您可能最终会复制ID.但那没有什么坏处,是吗?

另一种方法是使用数据属性:

这解决了重复的ID问题,但它确实意味着您必须处理属性而不是ID,这有时更加困难.你们有什么感想?



1> Peter Hilton..:

请注意,ID不能以数字开头,因此:

是无效的HTML.请参阅HTML中id属性的有效值是什么?

在你的情况下,我会使用ID thing5thing.5.


我只想指出,现在一个ID可能以数字开头.供将来用户参考.

2> John Milliki..:
// Get thing on the page for a particular ID var myThing = select("#myapp-thing-5"); // Get ID for the first thing on the page var thing_id = /myapp-thing-(\d+)/.exec ($('.thing')[0].id)[1];



3> keparo..:

你将放弃对DOM的一些控制

没错,什么都不会爆炸,但这是不好的做法.如果你在页面上放置重复的id,那么当你尝试通过id访问元素时,你基本上无法确定你得到了什么.

var whoKnows = document.getElementById('duplicateId');

根据浏览器的不同,行为实际上是不同的.在任何情况下,您都可以将classNames用于重复值,并且您将完全避免这个问题.

浏览器会尝试忽略标记中的错误,但事情会变得混乱而且更加困难.最好的办法是保持标记有效.您可以在className中描述元素的类型及其唯一的数据库ID.您甚至可以使用多个classNames来区分它们.有很多有效的可能性:

要么

要么

要么

这些都是完全合法且有效的XHTML片段.请注意,在最后一个片段中,我仍然有一个id为我工作,这很好.通过他们的id访问元素非常快速和简单,所以你绝对希望能够尽可能地利用它.

您已经在javascript中花费了足够的时间,确保您拥有正确的值和类型.在页面上放置重复的ID会让事情变得更难.如果您能找到编写符合标准的标记的方法,它有许多实际的好处.



4> AnthonyWJone..:

根据标准,ID应该是唯一的,虽然大多数浏览器在递交重复ID时不会进行barf,但依靠总是这样的情况并不是一个好主意.

通过向ID添加类型名称来使ID唯一可用,但您需要询问为什么需要它.当需要找到元素时,赋予元素id是非常有用的,getElementById非常快.大多数浏览器在加载DOM时会构建ID索引的原因很快.但是,如果您拥有数以万计的ID,而您实际上并不需要在getElementById之类的东西中使用,那么您将承担从未支付过的成本.

我想你可能会发现大多数时候你想要在元素或其子元素触发的事件中使用对象ID.在这种情况下,我将在元素上使用其他属性,而不是ID属性.

我会留下class属性去做它的意图,而不是用识别职责重载它.

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有