2013-01-21 42 views
1

任何想法为什么这个选择器会失败?jquery 1.8+中的选择器失败

$('.Demographics :input["data-name"]') 

你可以看到它here at jsfiddle

我试图让所有具有data-name属性的input元素。

jQuery的1.9,我得到这个:

Syntax error, unrecognized expression: .Demographics :input["data-name"] 
+0

有趣的是,这在jQuery 1.7和之前的工作。 –

回答

4

变化:

$('.Demographics :input["data-name"]') 

$('.Demographics :input[data-name]').length 

演示; jsFiddle

+0

谢谢。删除引号解决了它。 –

+0

不客气.. :) –

1
$('.Demographics').find('input[data-name]').length 

或者只是:

$('.Demographics :input[data-name]').length 
2

你不能有属性名左右的报价,只有属性值。 "data-name"不是有效的属性名称。只有data-name是:

$(".Demographics :input[data-name]") 

然而,对于值,您可以使用引号:

$(".Demographics :input[data-name='test1']") 

后者是没有必要的,但建议。

+0

谢谢!根据html,只有在值字符串中有空格或特殊字符时才需要引号。 –

+0

@GlenLittle这是正确的,但即使没有特殊字符,它们仍然可以工作,所以我建议在任何时候都使用它们以保持一致性。 –