ハマログ

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

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日


関連記事

Laravel EloquentのソートでNULLを最後に持ってくる(MySQL)

Laravel5系+MySQL5のはなし。 Laravel+Eloquentのプ…

Googleセーフブラウジングで警告が表示されてあせった話

Googleセーフブラウジング使っていますか? Googleがウェブサイトをクロ…

IP制限の環境下でLet’s EncryptのSSL証明書を発行する

Let’s EncryptのSSL証明書を導入する際に、通常のウェブ環境であれば…


← 前の投稿

次の投稿 →