idのescape
jQuery mobileを使っていると、ページ遷移後のdivにはidが自動的に振られる。
<a href="/sample/next.do?init=true¶m=x">次へ</a>
こんなURLだと、idはそのまんまで
<div data-role="page" id="/sample/next.do?init=true¶m=x">
になります。
とある事情から、このdivを取得して操作する必要が出たので、このように書きました。
var page = $('#/sample/next.do?init=true¶m=x');
すると、正しく動きませんでした。
どうやらjQueryのidセレクトするには記号が含まれるとダメのようです。
で、「/」や「.」「?」「=」「&」なんかをエスケープしてやるとうまくいきました。
function escape(str) { return str.replace(/\/|\?|\=|\&|\./g, function(val){ return '\\' + val; }); } $('#' + escape('/sample/next.do?init=true¶m=x'));
でも、もっと楽チンな方法があると思うんだなー。
教えて欲しいです!