根据url - window.location.hash的#来设置变量

时间:2012-02-02 15:54:37

标签: jquery

所以我想说我有一个网址www.hello.com#one

我知道我可以抓住有价值

var hash = window.location.hash;
alert (hash);

但是然后写(我知道下面不是专业代码):

如果var hash = 1,则将var hashValue设置为1

否则

如果var hash = 2,则将var hashValue设置为2

其他等等

有更好的方式来写这个。

干杯

3 个答案:

答案 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个项目,你就会有很长的名单