如果我在:contains选择器中包含单个括号,则会出错。
e.g。
$("a:contains('Speed (mph')")
返回错误
语法错误,无法识别的表达式: (英里每小时')
如果我在结尾处添加右括号,则该语句运行正常。但是,我需要能够查询通常有一个括号的位置。
这里发生了什么,我该如何回避这个?
修改
在我的实际代码中:contains包含作为变量传入的部分
e.g
var searchText = 'Speed (mph';
var result = $("a:contains('" + searchText + "')");
答案 0 :(得分:2)
您应该可以使用$("a:contains('Speed \\(mph')")
来自http://api.jquery.com/category/selectors/
如果你想使用任何一个 元字符(例如 !“#$%&'()* +,。/:;< =>?@ [] ^`{|}〜) 文字的一部分,你必须 用两个逃避角色 反斜杠:\。例如,如果你 有一个id =“foo.bar”的元素,你 可以使用选择器$(“#foo \ .bar”)。 W3C CSS规范包含 关于有效的完整规则 CSS选择器。
答案 1 :(得分:0)
从Matthew Flaschen的链接开始,你可以使用这样的过滤函数:
var searchRegex = new RegExp("Speed \\(mph","g");
var result = $('a').filter(function(i, el) {
return $(el).text().match(searchRegex);
});