如何从URL获取散列值

时间:2015-07-27 13:34:06

标签: jquery hash

如何将来自url的散列值转换为单独的变量url#value1=abc&value2=xyz&value3=123,如此

var value1 = 'abc';
var value2 = 'xyz';
var value3 = 123;

如果任何变量不存在于url中,

var value4 = 0;

我使用window.location.hash获取所有哈希值,但我如何将其分成单独的变量。

5 个答案:

答案 0 :(得分:1)

似乎是使用数组而不是单独变量的更好选择。

var hashValues = window.location.hash.substr(1).split("&");

并且你想在变量中使用它们,可能会更好地作为一个对象,而不是充斥全局范围。

var vals = { "value1" : 0 };
for(var i=hashValues.length;i++) {
    vals["value"+i] = hashValues[i];
}

答案 1 :(得分:1)

我发现JavaScript没有关联数组的概念,尽管我们可以通过创建一个对象来实现。 通过这段代码,我们可以以键和值的形式将值输入到对象中。

var href = window.location.hash.substr(1);
var hash = href.split("&");
var scroll = new Object();
for(key in hash){
    var arr = hash[key].split("=");
    scroll[arr[0]] = arr[1];
}

答案 2 :(得分:1)

通过标签(#)获取价值:

var hash = location.hash;

在井号(#)之后获取价值:

var hash = location.hash.substr(1);

从href获取哈希值:

this.hash; //  returns the hash value from href attributes of an anchor tag.

例如:

<a href="http://www.codexworld.com/index.php#VideoTutorial" onclick="alert(this.hash)">Get Hash</a>

来源:CodexWorld

答案 3 :(得分:0)

使用.split()

var hash = window.location.hash;
var split = hash.split('&');
var value1 = split[0];
var value2 = split[1];
var value3 = split[2];
if(value1 == "" || value2 == "" || value3 == "") {
    var value = 0;
}

答案 4 :(得分:0)

这应解决3个参数的问题。

var hash = this.hash.substr(1);

if(hash == ""){
    var value4 = 0;
}

var value1Raw = hash.split('&')[0];
var value2Raw = hash.split('&')[1];
var value3Raw = hash.split('&')[2];

var value1 = value1Raw.substring(7);
var value2 = value2Raw.substring(7);
var value3 = value3Raw.substring(7);