我有以下由一些我无法更改的 struts 代码生成的元素。
<input type="hidden" name="versions[0].elements[0].description">
我通常会使用类似的东西$('input[name=XXX]');
但是,由于我的名字有特殊字符,我需要能够逃脱它。有任何想法吗?
谢谢
我有以下由一些我无法更改的 struts 代码生成的元素。
<input type="hidden" name="versions[0].elements[0].description">
我通常会使用类似的东西$('input[name=XXX]');
但是,由于我的名字有特殊字符,我需要能够逃脱它。有任何想法吗?
谢谢
您只需将 name 变量用引号括起来,如下所示:
$('input[name="versions[0].elements[0].description"]');
在这种情况下,您不需要转义属性值在 jQuery 内部被视为字符串文字。
要使用任何元字符(例如 !"#$%&'()*+,./:;<=>?@[]^`{|}~ )作为名称的文字部分,它必须用两个反斜杠转义:\
所以在你的情况下:
$('input[name="versions\\[0\\].elements\\[0\\].description"]');
如果输入名称中有模式,则可以使用^=
选择以某事物开头的名称或$=
选择结尾或*=
选择包含某事物的输入。例如:
$('input[name$="description"]')
选择名称以描述结尾的输入。
想法1:为你的输入元素添加一个css类,例如:
<input type="hidden" name="versions[0].elements[0].description" class="version-desc">
然后,得到它:
var $inputs = $("input.version-desc");
在每个特殊字符前使用两个反斜杠。
例如
$('input[name=\\XXX\\]')