如何将来自url的散列值转换为单独的变量url#value1=abc&value2=xyz&value3=123
,如此
var value1 = 'abc';
var value2 = 'xyz';
var value3 = 123;
如果任何变量不存在于url中,
var value4 = 0;
我使用window.location.hash
获取所有哈希值,但我如何将其分成单独的变量。
答案 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);