用于排序数据的多个(2)哈希url参数

时间:2016-02-11 21:57:29

标签: javascript jquery sorting hash

我有2个过滤器:按位置和类型。每次我都需要更新哈希网址而不刷新页面。我怎样才能做到这一点?

链接结构例如: site.com/about#location=12#type=188

由于

2 个答案:

答案 0 :(得分:0)

您可以使用window.location.hash调整网址中的哈希值。

window.location.hash = 'some value';

答案 1 :(得分:0)

首先将散列分割为#以获取最多2个项目的数组: -

var hashes = window.location.hash.split('#');

然后你可以检查它们是否存在: -

var location = hashes.filter(function(i) { return i.startsWith('location'); });
var type = hashes.filter(function(i) { return i.startsWith('type'); });

如果location.length == 1type相同,那么它们就会被设置。

然后你可以更新/替换如: -

location[0] = "location=" + 11;
type[0] = "type=" + 190;

将它们重新连接在一起的最简单方法,包括一个不设置是将它们添加到新数组并join

var arr = [];

if(location.length == 1) arr.push(location[0]);
if(type.length == 1) arr.push(type[0]);

window.location.hash = arr.join('#');