jquery选择器包含等号

Joh*_*ell 6 jquery sign equals selector

我使用jQuery选择器来检查href中的字符:

var param = "something";
$("a[href*="+param+"]").css("color", "red");
Run Code Online (Sandbox Code Playgroud)

这工作正常,直到"某事物"包含=符号.例如:

var param = "xkey=123";
$("a[href*="+param+"]").css("color", "red");
Run Code Online (Sandbox Code Playgroud)

然后我没有结果.有人知道解决方案吗?

Joã*_*lva 6

您需要转义该=字符,因为它在jQuery 选择器中使用时具有特殊含义.以下是需要转义的所有字符的完整列表:

#;&,.+*~':"!^$[]()=>|/
Run Code Online (Sandbox Code Playgroud)

因此,您可以使用以下来逃避param:

param.replace(/([ #;&,.+*~\':"!^$[\]()=>|\/@])/g,'\\$1')
Run Code Online (Sandbox Code Playgroud)

从jQuery 文档:

如果你想使用任何元字符(例如!"#$%&'()*+,./:; <=>?@ [] ^`{|}〜)作为字面的一部分name,你必须用两个反斜杠转义字符:\.

这是一个演示.