jQuery セレクターのエスケープ
Javaフレームワークとの兼ね合いで、HTML要素のidを「items[0].code」と設定しているタグがありました。
jQueryのセレクタで指定したけど上手く動かなかった。
$('#items[0].code').val();
これはきっとエスケープだなとおもったので、調べてみると公式サイトに説明がありました。
どうやらバックスラッシュ2つでエスケープできるようです。
How do I select an element by an ID that has characters used in CSS notation?
https://learn.jquery.com/using-jquery-core/faq/how-do-i-select-an-element-by-an-id-that-has-characters-used-in-css-notation/
// Does not work: $( "#some:id" ) // Works! $( "#some\\:id" ) // Does not work: $( "#some.id" ) // Works! $( "#some\\.id" )
エスケープ対象となる文字列は同じく公式サイトの以下にありました。
https://api.jquery.com/category/selectors/
To use any of the meta-characters ( such as !”#$%&'()*+,./:;<=>?@[\]^`{|}~ ) as a literal part of a name, it must be escaped with with two backslashes: \\.
ということで、以下のように記述することで解決することができました。
$('#items\\[0\\]\\.code').val();
では、また。