1

jqueryハッシュで複数の値を取得するにはどうすればよいですか?

例:

http://mysite.com/#l:value&v:id1212と同じですが、ページの更新はありませんhttp://mysite.com/?l=value&v=id1212

私は次のようなことを考えました:

var hash = location.hash.replace(/^.*?#/, '');

var lVal = (/^l:/.test( hash ));
var vVal = (/^v:/.test( hash ));

しかし、どうすればそのvar lValが&記号までしか読み取れないように修正できますか?私は正しい方向にいますか?

4

2 に答える 2

7

文字列を符号で分割&してから、値を取得してみてください。

var hash = location.hash.replace(/^.*?#/, '');
var pairs = hash.split('&');
var lVal = pairs[0].split(':')[1];
var vVal = pairs[1].split(':')[1];
于 2012-07-08T17:18:00.373 に答える
3

痛みを和らげるのに役立つHistory.jsのようなものを探しているのではないかと思います。また、 URI.jsには、データフラグメント用のフラグメント乱用プラグインがあります。それ以外の場合は、次のようなものを試してください

var data = {};
var tokens = location.hash.substring(1).split('&');
for (var i=0, l=tokens.length; i < l; i++) {
  var token = tokens[i].split(':');
  // maybe token[1] is escaped or something?!
  data[token[0]] = token[1];
}
console.log(data);
于 2012-07-08T17:22:00.677 に答える