1

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

<input type="hidden" name="versions[0].elements[0].description">

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

但是,由于我的名字有特殊字符,我需要能够逃脱它。有任何想法吗?

谢谢

4

5 回答 5

2

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

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

示例小提琴

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

于 2013-01-09T10:32:39.240 回答
1

jQuery API 文档

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

所以在你的情况下:

$('input[name="versions\\[0\\].elements\\[0\\].description"]');
于 2013-01-09T10:32:19.780 回答
0

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

 $('input[name$="description"]')

选择名称以描述结尾的输入。

于 2013-01-09T10:32:07.320 回答
0

想法1:为你的输入元素添加一个css类,例如:

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

然后,得到它:

var $inputs = $("input.version-desc");
于 2013-01-09T10:33:55.663 回答
0

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

例如

$('input[name=\\XXX\\]')
于 2013-01-09T10:34:48.913 回答