根据 the selectors docs , 你必须用双反斜杠等转义 [
\\[
.
我有一个这样创建的选择器(假设 val
属性是 something[4][2]
在这个例子中)。
var val = $(this).attr('val');
$select.find('option[value=' + val + ']').show();
我可以写一个正则表达式来为我转义括号吗?
最佳答案
如果你想要一些可以与任何类型的值一起使用的东西,试试这个:
var val = $(this).attr('val').replace(/[!"#$%&'()*+,.\/:;<=>?@[\\\]^`{|}~]/g, "\\\\$&")
这是通过转义 Selectors page of the jQuery documentation 中列出的所有 CSS 元字符来实现的带有两个反斜杠。
请记住,在您的情况下,没有必要做这样棘手的事情。您可以使用 filter函数选择具有给定值的所有选项元素而不必转义该值,如 Mathias Bynens 的回答中所述。
关于javascript - 需要转义 jQuery 选择器字符串中的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54491626/