【发布时间】:2014-08-28 22:09:40
【问题描述】:
我有一些带有“.”的代码css 类名中的字符,因此需要转义才能使用选择器$('.classNameWithDot\\.inIt')查找元素
我遇到了一个有趣的错误,如果您将选择器存储在变量中,它将无法按预期工作,除非您将点字符从两个反斜杠转义为一个反斜杠。
//will not work
//var selector = '.classNameWithDot\\.inIt';
//works in a variable, with one backslash as opposed to the required double backslash for the literal
var selector = '.classNameWithDot\.inIt';
var element = $(selector);
我的问题是为什么会这样?为什么我们必须在文字选择器中使用双反斜杠,而在变量选择器中使用单反斜杠?
【问题讨论】:
-
'.classNameWithDot\.inIt'结果为.classNameWithDot.inIt,所以我怀疑您的观察是否正确。无论您使用字符串文字还是变量都无关紧要。除非您可以使用 jsfiddle.net(或类似的东西)重现该行为,否则我认为您的实际问题出在其他地方。 -
这个小提琴与你的描述不符:jsfiddle.net/jtbowden/zf4daLxt
-
类名不以“点”开头。例如:'someName.restOfName'。 @FelixKling
标签: jquery jquery-selectors escaping delimiter backslash