javascript - 需要转义 jQuery 选择器字符串中的特殊字符

标签 javascript jquery

根据 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/

相关文章:

c# - MVC 中的数据模板 :- how to define constant in javascript from the c# code

jquery - iOS 7 Safari jquery text() 没有被渲染

javascript - jQuery cssHooks 没有被调用

javascript - 绑定(bind) popstate 事件不起作用

javascript - 代码在 localhost 中工作,但在 hostgator 服务器中不起作用?

javascript - 测试功能组件内单击事件的函数/方法调用

javascript - 选择带空格的父级高度 :nowrap

javascript - 将两个 JSON 值合并为一个数组

javascript - 图表显示不正确

javascript - Mailchimp api使用java脚本请求订阅问题