大きい数値を扱う時はjQuery.data()ではなくjQuery.attr()を使う

多分、他に方法がないのかなと思ったのでタイトルのようになりました。



jQueryではHTML5のdata属性が扱えて、たとえば

twitterさんの発言:<span data-tweet-id="1">ほげほげ</span>

みたいなHTMLがあった時に

$('span').data('tweet-id')

ってやれば「1」が取得できるのだけど、ここで得られる値は数値なので、twitterのidみたいにデカい数字だとおかしなことになる。
jQuery.data()とjQuery.attr('data')の違い - jsdo.it - Share JavaScript, HTML5 and CSS



パッとコードを確認してみたら

// https://github.com/jquery/jquery/blob/1.5.1/src/data.js#L292

				!jQuery.isNaN( data ) ? parseFloat( data ) :

となっていて、数値が入った文字列だったらparseFloatで数値に変換しているっぽいので多分文字列で取る方法はないんだと思う。



ということで、文字列で取得するために昔からあるjQuery.attr()を使って

$('span').attr('data-tweet-id')

って書くことにしました。