像'!@#$%^&*('这样的非字母数字字符是否可以用作有效的ID?



>我正在为不同的元素添加唯一的ID和类,就像这样,

<div id="%'@#K!NG,<$wE3T?">Sweet</div>

所以我抬头看了一下,HTML 中 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 (".").

但后来我自己尝试,似乎比这灵活得多。 这两种方法都有效:

$(document.getElementById("%'@#K!NG,<$wE3T?")).text();
document.getElementById("%'@#K!NG,<$wE3T?").innerHTML;

如果我包含诸如 !@#$%^&*()<>}|在ID名称中?

它可以在许多浏览器中工作,但不能保证有效。为了获得最大的安全性,请坚持标准。

这与:为什么变量名不能以数字开头?

在 HTML/JS 中,这在当今可能不是什么问题,但请记住您可以这样做:

>>> window.footer
<div id="footer" class="categories">

这几乎就是JS在早期的工作方式。出于兼容性的原因,它仍然有效。它实际上已经在HTML5中形式化了,恕我直言,它是HTML5中较糟糕的概念之一。我相当确定,每次你在实时应用程序中使用它时,道格拉斯·克罗克福德都会杀死一只可爱的小哺乳动物。请参阅:DOM:元素 ID 是全局变量。

相关内容

最新更新