Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 需要转义的元素的jquery选择器_Javascript_Jquery_Jquery Selectors_Escaping - Fatal编程技术网

Javascript 需要转义的元素的jquery选择器

Javascript 需要转义的元素的jquery选择器,javascript,jquery,jquery-selectors,escaping,Javascript,Jquery,Jquery Selectors,Escaping,我有以下元素,它是由我无法更改的一些struts代码生成的 我通常会使用类似$'input[name=XXX]'的东西 然而,由于我的名字有特殊的字符,我需要能够逃脱它。有什么想法吗 谢谢 如果输入名称中有模式,可以使用^=选择以某物开头的名称,或使用$=选择结尾,或使用*=选择包含某物的输入。 例如: $('input[name$="description"]') 从以下列表中选择名称以说明结尾的输入。: 要使用任何元字符,如 !$%&'*+,./:;?@[]^`{124;}~作为名称的文

我有以下元素,它是由我无法更改的一些struts代码生成的

我通常会使用类似$'input[name=XXX]'的东西

然而,由于我的名字有特殊的字符,我需要能够逃脱它。有什么想法吗

谢谢
如果输入名称中有模式,可以使用^=选择以某物开头的名称,或使用$=选择结尾,或使用*=选择包含某物的输入。 例如:

 $('input[name$="description"]')
从以下列表中选择名称以说明结尾的输入。

要使用任何元字符,如 !$%&'*+,./:;?@[]^`{124;}~作为名称的文字部分,它必须 用两个反斜杠转义:\

因此,在你的情况下:

$('input[name="versions\\[0\\].elements\\[0\\].description"]');

只需将name变量用引号括起来,如下所示:

$('input[name="versions[0].elements[0].description"]');

在这种情况下,不需要转义,jQuery在内部将属性值视为字符串文字。

想法1:向输入元素添加css类,例如:

<input type="hidden" name="versions[0].elements[0].description" class="version-desc">

在每个特殊字符前使用两个反斜杠

e、 g


您确定不能更改某些struts代码吗?哪个标记生成此隐藏字段?是否需要:$input[name='versions[0]。elements[0]。description']@VisionN是的,它似乎不起作用。版本[0]。元素[0]。说明是变量或仅仅是字符串?@AleksandrM该名称由Struts内部生成,以匹配Java对象中表单bean的继承权,因此如果不更改其web应用程序中的对象结构,则无法进行更改。假设Struts而不是Struts2,它是使用标记生成的。这是不正确的。当使用字符串文字时,您不需要转义:谢谢Rory。。这就是我想要的。
var $inputs = $("input.version-desc");
$('input[name=\\XXX\\]')