0

説明できない行動に出くわしました。シンプルなセレクターで要素 (id='address.zipCode)' を取得したい:

 $('#' + prefix + 'zipCode')

そしてそれはうまくいきません。この場合、プレフィックス == 'アドレス\\.' です。Chrome コンソールのデバッグの結果:

> prefix
  "address\\."

> $('#' + prefix + 'zipCode')
  []

最も興味深い部分は次のとおりです。

$('#' + "address\\." + 'zipCode')
[<input id=​"address.zipCode" name=​"address.zipCode" class=​"zipCodeMask" type=​"text" value>​]

それの何が問題なのですか?

4

1 に答える 1

3

Chrome REPL の動作 (文字列の最終値、つまりエスケープ文字を表示する) からさかのぼると、実際には最終文字列に 2 つのバックスラッシュがあります。つまり、おそらく次のprefixように割り当てています。

var prefix = "address\\\\.";

実際に必要なのは1 つのバックスラッシュだけです。つまり、文字列リテラルに 2 つのバックスラッシュ (1 つはエスケープ用) を入力する必要があります。

var prefix = "address\\.";
于 2013-08-15T14:41:25.910 に答える