0

セレクタで使用する変数がありますが、変数に特殊文字が含まれています。これを行う方法はありますか?JQueryセレクタ:セレクタに挿入された変数の特殊文字をエスケープする方法

hasSpecialChr='dynamicVar[1][3]'; 

element = $('li.parent#'+hasSpecialChr); 

編集:下記の最初のコメントで答える。

+3

クイックGoogle検索jQueryのドキュメントで説明したような文字を取り除くために関数を使用することです:https://learn.jquery.com/using-jquery-core/faq/how-do-i-select-an-element-by-an-id-that-has-characters-used-in-css-notation/ –

+0

困ったことに... – Phil

+1

可能な複製:http://stackoverflow.com/questio ns/739695/jquery-selector-value-escaping – JonSG

答えて

0

これを試してみてください:

hasSpecialChr='dynamicVar\\[1\\]\\[3\\]'; 
element = $('li.parent#'+hasSpecialChr); 
+0

私はこれがうまくいくとは思わない。私は彼らには$( "#dynamicVar \\\ [1 \\\] \\\ [3 \\\]")が必要だと思います。 – JonSG

+0

ええ、私はそれを試して、それは動作しません。 \\はその後の最初の文字をエスケープします。 – Phil

+0

申し訳ありません私は私の答えを更新しました –

0

これはあなたの問題を解決することがあります。

s.replace(/[^a-z\d\s]+/gi, ""); 

は、すべての文字、数字、空白以外削除します。で述べたように

hasSpecialChr='dynamicVar[1][3]'; 
hasSpecialChr.replace(/[^a-z\d\s]+/gi, ""); 
element = $('li.parent#'+hasSpecialChr); 
関連する問題