element.datasetから得られるカスタムデータ属性の値はstringらしいのですが、jQueryの.data()は暗黙的に型変換を行ってしまうみたいです。

id="test"
data-str="hogefuga"
data-num="01234"
data-bool="true"
data-ary="[1,2,3]"
data-obj='{"foo":"bar"}'


これを取得する

var $elm = $('#test');

// string
$elm.data('str'); // 'hogefuga'

// number
$elm.data('num'); // 1234

// boolean
$elm.data('bool'); // true

// array
$elm.data('ary'); // [1,2,3]

// object
$elm.data('obj'); // {foo:'bar'}

こうなってしまいます。


そんなこんなで、springの@PathVariableをつかって取得してた値がundefinedになってコケまくってしまってました

ちくしょう!!

というわけで、こんなときは

.attr()を使いましょう

jQueryの$elm.data()で取得できる値は暗黙でstringから型変換される