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