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

Joh*_*ith 8 html css php jquery

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

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

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

sma*_*man 16

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

  1. 它违反了W3C规范.
    您在问题中注意到了这一点,除了HTML5之外,每个HTML规范都是如此

  2. 这对SEO是有害的.
    搜索引擎优化的HTML元素ID应该反映所标识元素的内容.查看Meitar Moscovitz 如何编写像Rockstar一样的HTML ID和类名.它提供了这个概念的良好概述.

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


Tho*_*nga 6

我建议你使用前缀"comment-ID"或"post-ID".

如果你需要JavaScript中的id,你只需id.substring(8)(为"评论 - ")