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