所以我想说我有一个网址www.hello.com#one
我知道我可以抓住有价值
var hash = window.location.hash;
alert (hash);
但是然后写(我知道下面不是专业代码):
如果var hash = 1,则将var hashValue设置为1
否则
如果var hash = 2,则将var hashValue设置为2
其他等等
有更好的方式来写这个。
干杯
答案 0 :(得分:1)
var map = {
one: 1,
two: 2
};
var hashValue = map[hash.substring(1)];
如果地图中不存在哈希值,则会将hashValue设置为undefined
。
答案 1 :(得分:1)
您也可以使用switch
块来执行此操作。
switch(location.hash.replace('#', '')){
case "one": newhash = 1;
break;
case "two": newhash = 2;
break;
};
alert (newhash);
答案 2 :(得分:1)
实际上,哈希返回包含#符号
的哈希值所以hash ='#one'不是'one'。除此之外,您可以使用开关盒 开关(散列) { 案例'#one': hashVar = 1; 案例'#two': hashVar = 2; }
如果您愿意将哈希样式更改为#tab1#item1或简单地#1而不是#one或其他内容,则可以轻松获取该数字
var hash = window.location.hash;//hash=#tab1 say
var number=hash.replace('#tab',"");
alert(number);
就是这样。这样,数字可以根据需要增加。在第一种情况下,您必须为每个数字手动分配变量
所以,如果有100个项目,你就会有很长的名单