ハマログ

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

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日


関連記事

composer updateのメモリ不足エラーに対応する

composer updateの実行時にメモリエラーが発生しました。 ./com…

AWS CodeDeployでデプロイ対象のアプリケーションによって処理を制御する

AWS CodeDeployでアプリケーションをデプロイする際に、特定のサーバー…

AWS IoT ボタンでチャットワークに通知する

AWS Iot エンタープライズボタンを購入したのが7月・・・なにもしないまま9…


← 前の投稿

次の投稿 →