jQuery:处理id属性中的空格

我有一个id =“AB”的元素。 以下代码失败

 $("#AB").click(function(){alert();}); 

以下代码不会失败

  $("#AB").click(function(){alert();}); 

虽然在HTML中的ID属性值中有空格在技术上是无效的(请参阅@ karim79的答案),但实际上可以使用jQuery选择它。

见http://mothereffingcssescapes.com/#A%20B :

  

jQuery使用类似Selectors API的语法,所以你可以使用$('#A\\ B'); 选择id="AB"的元素。

要在CSS中定位元素,您可以像这样转义它:

  

正如他们所提到的,你不应该在id中使用空格。 但无论如何,这不适合你吗?

 $("[id='A B']").click(...) 

编辑 :是的它工作,测试它! 不要杀我,标准爱好者! ;-P

HTML4和HTML5都不允许ID属性值中的空格字符。

HTML 4.01规范声明ID令牌必须以字母([A-Za-z])开头,后面可以跟任意数量的字母,数字([0-9]),连字符( – ),下划线(_) ,冒号(:)和句点(。)。 对于class属性,没有这样的限制。 类名可以包含任何字符,并且它们不必以字母开头有效。

HTML5摆脱了对id属性的额外限制。 剩下的唯一要求 – 除了在文档中是唯一的 – 是值必须包含至少一个字符(不能为空),并且它不能包含任何空格字符。

资源:

http://mathiasbynens.be/notes/html5-id-class

id中不应该有空格,但这似乎有效:

 $("[id=AB]") 
 ID令牌必须以字母([A-Za-z])开头,后面可以跟任意数量的字母,数字([0-9]),连字符(“ - ”),下划线(“_”),冒号(“:”)和句点(“。”)。

该引用是从另一个stackoverflow回答中提取的: 带有空格的jquery ID