如何从jquery哈希中获取多个值

时间:2012-07-08 17:11:55

标签: javascript url fragment-identifier

如何在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只读取直到&标志? 我正朝着正确的方向前进吗?

2 个答案:

答案 0 :(得分:6)

尝试通过&符号split字符串,然后检索值:

var hash = location.hash.replace(/^.*?#/, '');
var pairs = hash.split('&');
var lVal = pairs[0].split(':')[1];
var vVal = pairs[1].split(':')[1];

答案 1 :(得分:3)

我相信您可能正在寻找像History.js这样的东西来帮助您缓解疼痛。此外,URI.js还有data fragments的片段滥用插件。否则尝试类似

的东西
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);