总是“非法”的。违反规范=违法。仅仅因为偶然或过于慷慨的编译器而使某些“似乎可以工作”并不意味着它是有效的代码。
另一种思考的方式是:因为您想让肯德勒·恩格莱什(KorrectEnglesh)成为您的一面。您有一个能理解这一点的慷慨的编译器/大脑(例如Google Chrome),但是英语知识更有限的人(例如,市场上刚接触过浏览器X的人)或精神上无能力的人(例如Internet Explorer)可能根本不理解它…但是如果每个单词的拼写正确/符合规范,便能够理解它。
我可以找到几个原因:
根据DOM规范,“如果多个元素具有具有该值的ID属性,则返回的内容不确定”
和:
错误不会以灰色阴影出现。该代码违反标准,因此不正确。这将使验证检查失败,应该这样做。就是说,目前市场上没有浏览器会抱怨或有任何问题。浏览器有权投诉该浏览器,但是任何浏览器的当前版本都没有。这并不意味着将来的版本可能不会对此代码造成不良影响。
和:
在CSS或Javascript中尝试使用该ID作为选择器的行为是无法猜测的,并且可能因浏览器而异。
和:
许多Javascript库无法按预期运行
和:
经验表明,主流浏览器中的getElementById将返回文档中的第一个匹配元素。但是,将来可能并非总是如此。



