ハマログ

株式会社イーツー・インフォの社員ブログ

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();

では、また。

CSScss3escapeHTMLHTML5JavaScriptjQueryjsエスケープ

  kaneko tomo   2015年8月20日


関連記事

AWS Lambda/API GatewayのIP制限が解除されなくて困った話

AWSで環境構築・開発をするにあたって(AWSに限りませんがまあその)、 当然な…

Laravel5でCarbon locale=>jaに設定

事の始まりは上長より 「setlocale(LC_ALL, ‘ja_…

実行可能jar の プロパティファイルを外部に置く

背景 実行可能jarの設定などを記述したプロパティファイルを 開発時と本番時で分…


← 前の投稿

次の投稿 →