根据选择器文档,必须[使用双反斜杠等进行转义\\[。
[
\\[
我有一个这样创建的选择器(假设val属性something[4][2]在此示例中)。
val
something[4][2]
var val = $(this).attr('val'); $select.find('option[value=' + val + ']').show();
我可以写一个正则表达式为我逃脱括号吗?
如果您希望某些东西具有任何价值,请尝试以下操作:
var val = $(this).attr('val').replace(/[!"#$%&'()*+,.\/:;<=>?@[\\\]^`{|}~]/g, "\\\\$&")
这可以通过用两个反斜杠转义jQuery文档的“ 选择器”页面上列出的所有CSS元字符来工作。
请记住,在您的情况下,无需执行此类棘手的操作。您可以使用过滤器功能选择具有给定值的所有选项元素,而不必转义该值,如Mathias Bynens的答案所述。