<input ID=":3f4" name="attach" type="checkBox" value="13777be311c96bab_13777be311c96bab_0.1_-1" checked="">
神奇的奇迹,大多数元素都有以下开头的ID:
我一直认为ID属性的定义是这样的.
ID and name tokens must begin with a letter ([A-Za-z]) and may be
followed by any number of letters,digits ([0-9]),hyphens (“-“),
underscores (“_”),colons (“:”),and periods (“.”).
或者我错过了什么新东西?我的意思是用HTML5可以吗?
解决方法 容许最新的工作草案允许它:http://www.w3.org/TR/html-markup/datatypes.html#common.data.id
Any string,with the following restrictions:
– must be at least one character long
– must not contain any space characters
该规范还指出:
PrevIoUs versions of HTML placed greater restrictions on the content
of ID values (for example,they dID not permit ID values to begin with
a number).
您引用的定义出现在HTML 4 spec中.
有一个widely-visited SO thread访问了一些关于ID的注意事项(主要是从HTML 4的角度来看).
合理
在考虑了更多之后,我意识到这里有两个好问题:
为什么规范允许这个?
可以包含任何字符的ID都有可能破坏各种事物,例如css选择器(如果没有使用正确的转义),Sizzle(jquery使用)模式匹配,服务器ID(例如ASP.Net Web表单使用)和从模型属性生成的ID(例如可以使用MVC模式生成的ID).
抛开所有这些事情,我认为HTML 5的一个关键目标是不创建非绝对必要的限制(这是xhtml的缺点).仅仅因为没有确定某个目的但并不意味着它不会在未来.
尽管有许多东西不起作用,但某些东西工作正常,例如document.getElementByID(“:foo”)
http://jsfiddle.net/Xjast/
与大多数事情一样,开发人员应该了解他或她正在使用的工具.
为什么Google会这样做?
显然,除非您是Gmail小组的成员,否则无法做出最终答案.但是,Google大大减少并混淆了他们的代码;他们还管理着大量的脚本,这表明定义明确的惯例.
这是另一个想法.如果Google正在利用css选择器需要转义某些字符这一事实会怎样?这将大大减少电子邮件消息中包含的内容的意外重新设置.
总结以上是内存溢出为你收集整理的html – ID属性可以以冒号开头吗?全部内容,希望文章能够帮你解决html – ID属性可以以冒号开头吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)