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

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

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

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

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

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

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

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

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

如果你需要JavaScript中的id,你只需要id.substring(8) (用于“comment-”)

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

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

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

你需要的最好的方法是为你的class级添加前缀,我的意思是像item- xx是你需要的数字。

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