1

変更できないいくつかのストラットコードによって生成された次の要素があります。

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

私は通常、次のようなものを使用します$('input[name=XXX]');

ただし、私の名前には特殊文字が含まれているため、エスケープできる必要があります。何か案は?

ありがとうW

4

5 に答える 5

2

次のように、name変数を引用符で囲む必要があります。

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

フィドルの例

この場合、属性値はjQueryによって文字列リテラルとして内部的に扱われるため、エスケープする必要はありません。

于 2013-01-09T10:32:39.240 に答える
1

jQuery APIドキュメントから:

メタ文字(! "#$%&'()* +、。/ :; <=>?@ [] ^` {|}〜など)を名前のリテラル部分として使用するには、 2つの円記号でエスケープする必要があります:\

だからあなたの場合:

$('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

各特殊文字の前に2つの円記号を使用します。

例えば

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