jQuery:处理id属性中的空格

jQuery:处理id属性中的空格,jquery,Jquery,我有一个id为=“A B”的元素。以下代码失败: <input type="text" id="A B"> <script>$("#A B").click(function(){alert();});</script> <input type="text" id="AB"> <script>$("#AB").click(function(){alert();});</script> $(“#A B”)。单击(函数(){

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

<input type="text" id="A B">
<script>$("#A B").click(function(){alert();});</script>
<input type="text" id="AB">
<script>$("#AB").click(function(){alert();});</script>

$(“#A B”)。单击(函数(){alert();});
以下代码未失败

<input type="text" id="A B">
<script>$("#A B").click(function(){alert();});</script>
<input type="text" id="AB">
<script>$("#AB").click(function(){alert();});</script>

$(“#AB”)。单击(函数(){alert();});
ID标记必须以字母([a-Za-z])开头,后面可以跟任意数量的字母、数字([0-9])、连字符(“-”)、下划线(“389;”)、冒号(:”)和句点(“.”)。
这句话来自另一个stackoverflow答案:

HTML4和HTML5都不允许在ID属性值中使用空格字符

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

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

资料来源:


正如他们提到的,您不应该在id中使用空格。 但不管怎样,这对你来说不管用吗

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

编辑:是的,它可以工作,测试过了!!!不要杀我,标准情人-P

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

$("[id=A B]")

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

见:


可能的副本似乎是我们在同一时间发布的:)+1这是正确的。然而,虽然在HTML的ID属性值中有空格在技术上是无效的,但如果有人想知道,在尝试选择带有空格的ID时,这也适用于Capybara。
<style>
  #A\ B {
    background: hotpink;
  }
</style>