2014-03-24 59 views
0

我已经将我的jquery从1.4更新到2.1,并且出现了一个错误。冒号在Jquery选择器

在我的代码中,我有一个部分,我用ID选择元素。

jQuery("*[id^=name:]")

产生一个错误,但有前(1.4)

没有任何错误。如果我逃避冒号比错误消失。他们是否在最新版本中增加了新内容,或者它只是我的代码中的一个错误?

回答

4

你可以用像一个字符串的属性值

jQuery('*[id^="name:"]') 

演示:Fiddle

+0

使用引号包装比转义和“更正确”更简单,因为这是您在实际CSS中的做法。 –

+1

回答这个问题..我认为它是在[jQuery 1.5](http://jsfiddle.net/arunpjohny/rRLm6/4/)中进行了更改......在[jQuery 1.4](http:// jsfiddle.net/arunpjohny/rRLm6/5/)它正在工作 –

+0

@Dharman它看起来像1.5中与[selectors]相关的变化很少(http://bugs.jquery.com/query?group=status&component=选择器&里程碑= 1.5)可能是导致价值变化的原因之一 –

2

您可以通过双反斜线转义。从docs

使用任何元字符(如 “#$%&“()* +,/ :; < => @ [] ^`{? |}〜)作为名称的文字部分,它必须 转义与两个反斜杠:\\

jQuery("*[id^=name\\:]") 

或包裹双引号内的值:

jQuery('*[id^="name:"]') 
+1

我知道我可以,我更感兴趣的是为什么刚刚出现了新的JQuery版本? – Dharman