心血来潮,把键盘上能按出来的特殊字符都按了个遍
依次是:
~`!@#$%^&*()_+{}|”:?><,./;'[]\
其中<和"不能放到id里,页面显示不全之外其他都可以哦~
分别放在中间,结尾和开头,比如te[st、te[、[st这种。
好孩子不要学哦~
附W3C规定:
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 (“.”).
ID和NAME必须由字母([A-Za-z]) 开头,之后可以跟任意数量的字母、数字([0-9])、短横(“-“)、下划线(“_”)、冒号(“:”)和点(“.”)。
实验结果表明,jQuery 1.3.1的选择器对于这些BT的特殊字符没有jQuery 1.2.6强劲,jQuery 1.2.6基本上是getElementById能搞定的他都能搞定,而1.3.1中的Sizzle选择器却没这么强悍,当然这纯属测试而已,同时提醒各位同学,一定要尊崇标准啊……不要随便乱来……我知道某些会输出诸如foo[bar]之类的ID,不可取啊,不符合标准的啊……虽然#foo\\[bar\\]是能成功匹配的,但#foo\\[bar就不行。总之注意别用这些离奇的符号做ID就差不多不会有问题了。
测试页面在这里:
http://shawphy.com/demo/selector/jQuery-1-2-6-selector-test.html
http://shawphy.com/demo/selector/jQuery-1-3-1-selector-test.html
测试结果,
1.2.6:三个失败
te\st
te\
\st
1.3.1:一坨……
te~st
te(st
te+st
te[st
te\st
te>st
te,st
te~
te(
te+
te[
te\
te>
te,
~st
(st
+st
[st
\st
>st
,st
================
在dev maillist发了邮件,John大回复说似乎可以解决,期待一下吧。
================
这个bug已经在1.3.2中修复,1.4.2中也通过了测试。
http://shawphy.com/demo/selector/jQuery-1-3-2-selector-test.html