jquery选择器,用于需要转义的元素

时间:2013-01-09 10:25:58

标签: javascript jquery jquery-selectors escaping

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

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

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

的内容

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

由于 w ^

5 个答案:

答案 0 :(得分:2)

你只需要将name变量包装在引号中,如下所示:

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

Example fiddle

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

答案 1 :(得分:1)

来自jQuery API documentation

  

使用任何元字符(例如   !&#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\\]')