使用数字启动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是不好的做法。
-
它违反了W3C规范。
您在问题中注意到了这一点,除了HTML5之外,每个HTML规范都是如此 -
它对SEO有害。
搜索引擎优化的HTML元素ID应该反映所标识元素的内容。 查看Meitar Moscovitz 如何编写像Rockstar一样的HTML ID和类名 。 它提供了这个概念的良好概述。 -
可能存在服务器端脚本问题。
回到我第一次开始使用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。
如果您正在操作元素,那么您可以使用$(this).jQueryOperation()
– 因此您可以拥有前缀而无需替换任何内容!
你需要的最好的方法是为你的class级添加前缀,我的意思是像item- x
和x
是你需要的数字。
但根据我的个人经验,最好为您的元素使用类,并且如果项目在页面中不唯一,您必须使用类