ハマログ

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

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   kaneko tomo   2015年8月20日


関連記事

Laravel4でForm::checkboxのチェック状態判定

laravel4にてForm::checkboxのチェック状態判定を行いました。…

プログラマーの夢

初めてプログラムを書いてから26年たちました、 いくらコードを書いても、10、2…

laravel5をcomja5で日本語化

こんにちは。S.Iです。 梅雨があけましたね。暑い日が続きますね。 さて、この度…


← 前の投稿

次の投稿 →