使用数字启动ID始终是不好的做法吗? (CSS)

时间:2011-03-20 04:02:54

标签: php jquery html css

在我的项目中,我有提交和评论,每个都有ID。目前,ID只是数字,与其数据库ID相对应。一切都运行正常,但当我通过W3验证器运行时,我收到错误:

value of attribute "id" invalid: "1" cannot start a name

我想我可以在所有id之前加上某种字符串但是每当我在JQuery或PHP中使用或操作id时我都必须在使用之前做id.replace('string','')它。这看起来相当麻烦。有什么建议吗?

5 个答案:

答案 0 :(得分:16)

是的,使用数字作为HTML元素ID是不好的做法。

  1. 违反了W3C规范。
    您在问题中注意到了这一点,除了HTML5

  2. 之外,每个HTML规范都是如此
  3. 这对SEO不利。
    搜索引擎优化的HTML元素ID应该反映所标识元素的内容。查看Meitar Moscovitz的 How To Compose HTML ID and Class Names like a Rockstar 。它提供了这个概念的良好概述。

  4. 可能存在服务器端脚本问题。
    回到我第一次开始使用ASP classic编程时,我不得不通过类似Request.Form("some_id")的语法访问提交的表单字段。但是,如果我执行Request.Form(1),它将返回表单集合中第二个字段的值,而不是Id等于1的元素。这是使用集合的非常标准的行为。它也与javascript类似,并且可能使您的客户端脚本编写更加复杂。

答案 1 :(得分:6)

我建议您使用前缀“comment-ID”或“post-ID”。

如果您需要JavaScript中的ID,则必须id.substring(8)(对于“评论 - ”)

答案 2 :(得分:4)

HTML 5规范解除了这一限制。如果您担心有效性,可以考虑将DTD更改为HTML5。

http://www.w3.org/TR/html5/elements.html#the-id-attribute

答案 3 :(得分:2)

如果您正在操作元素,那么您可以使用$(this).jQueryOperation() - 因此您可以拥有前缀而无需替换任何内容!

答案 4 :(得分:0)

您需要的最佳方式是为您的课程添加前缀,我的意思是项目 - x x是您需要的数字。

但是根据我的个人经验,最好为你的元素使用类,并且如果项目在页面中不是唯一的,你必须使用类