属性名称无法识别

时间:2015-01-17 11:59:58

标签: jquery

<select name="search[quick_dates]" id="search_quick_dates">
...
</select>

和jQuery:

f.find('select[name=search[quick_dates]]').bind('change', { form: f }, function(e){
...
}

抛出错误:

Uncaught Error: Syntax error, unrecognized expression: select[name=search[quick_dates]]

我可以更新我的jQuery而不是更改属性名称吗?

2 个答案:

答案 0 :(得分:2)

使用任何元字符,例如!“#$%&amp;'()* +,。/:;&lt; =&gt;?@ [] ^`{|}〜作为字面的一部分一个名称,必须使用反斜杠进行转义:

改变它:

f.find('select[name=search[quick_dates]]')

对此:

f.find('select[name="search\\[quick_dates\\]"]')

答案 1 :(得分:1)

您需要转义括号。但是使用单个反斜杠不会转义括号,因为单个反斜杠将转义函数内部字符串中的字符,但是您需要反斜杠作为表达式或选择器的一部分,因此您还必须通过另一个反斜杠转义反斜杠。

试试这个:

f.find('select[name=search\\[quick_dates\\]]')