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 回答