ハマログ

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

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日


関連記事

PHPのfile_get_contentsでエラーハンドリングする

PHPのfile_get_contents関数で、サーバ上のファイルを読み込むこ…

phpMyAdminでDBをインポートしたら画面が真っ白に!!

ローカル環境の「xampp for windows1.8.3」「phpMyadm…

ASMでHello World

はじめに ASM という frameworkに興味がり、それを使った サンプルプ…


← 前の投稿

次の投稿 →