无法在jquery选择器中传递点

ada*_*gde 0 javascript jquery

我需要传递带有点('.')的字符串作为jquery选择器的一部分.即使在通过添加'\\'来转义点之后,没有任何jquery函数按预期工作.以下是代码:

var id = "www.google.com";
var vgid = id.replace(/\./g, '\\\\.');  //adding '\\' before dot to escape it

var flagged = $('#flagged_'+vgid).val(); // retrieving the value of a field NOT working
Run Code Online (Sandbox Code Playgroud)

上述操作不返回字段的值.但是,如果我使用转义字符对值进行硬编码,则会给出值.

var flagged = $('#flagged_www\\.google\\.com').val(); //this is working
Run Code Online (Sandbox Code Playgroud)

Que*_*tin 5

您需要在选择器中的每个点之前使用一个斜杠,以便为CSS转义点

在您的硬编码示例中,您需要两个,因为要在JS字符串文字中编写CSS转义字符,您必须转义JS解析器的斜杠字符.

您在生成的示例中放了两个,但应该只有一个.

var vgid = id.replace(/\./g, '\\.'); 
Run Code Online (Sandbox Code Playgroud)