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属性的额外限制。 剩下的唯一要求 – 除了在文档中是唯一的 – 是值必须包含至少一个字符(不能为空),并且它不能包含任何空格字符。
资源:
id中不应该有空格,但这似乎有效:
$("[id=AB]")
ID令牌必须以字母([A-Za-z])开头,后面可以跟任意数量的字母,数字([0-9]),连字符(“ - ”),下划线(“_”),冒号(“:”)和句点(“。”)。
该引用是从另一个stackoverflow回答中提取的: 带有空格的jquery ID