2012-02-02 13 views
0

ので、私はインクルードが値は#OF URLに基​​づいて変数を設定 - window.location.hash

var hash = window.location.hash; 
alert (hash); 
を持ってつかむことができます知っている私は、URL www.hello.com#1

を持って言うことができますその後、

ではなく、(私は以下のコードをpropperされていません知っている)書き込み:

するvarハッシュ= 1は、その後、1

にするvarハッシュ値を設定した場合

のvarハッシュ= 2は、などなど、他の2

をするvarハッシュ値を設定する場合は、これを書くためのより良い方法があります。

乾杯

答えて

1
var map = { 
    one: 1, 
    two: 2 
}; 

var hashValue = map[hash.substring(1)]; 

ハッシュマップに存在しない場合は、このundefinedにハッシュ値を設定します。

+0

注意しなければならないと思い、各番号

のための変数を割り当てる必要があるだろう同じように。 –

+0

申し訳ありませんが、私は疲れを意味するかどうかは確かに:var hash = window.location.hash; var map = { 1:1、 2:2 }; var hashValue = map [hash]; アラート(ハッシュ値); – odd

+0

@FelixKling良いキャッチ。更新しました、ありがとう! – Dogbert

1

switchブロックを使用してこれを行うこともできます。

switch(location.hash.replace('#', '')){ 
    case "one": newhash = 1; 
    break; 
    case "two": newhash = 2; 
    break;  
}; 
alert (newhash); 
+0

これは私もこのバージョンが好きでありがとう – odd

1

実はハッシュは#記号

だから、ハッシュ=「#1」ではない「1」を含むハッシュ値を返します。それ以外はスイッチケースを使用できます。 スイッチ(ハッシュ) { case '#one': hashVar = 1; case '#two': hashVar = 2; }

あなたの代わりに#oneか何かの#TAB1#ITEM1を言ってハッシュのスタイルを変更するために喜んまたは単に#1であれば、uがそれだかなり簡単

var hash = window.location.hash;//hash=#tab1 say 
var number=hash.replace('#tab',""); 
alert(number); 

数を取得CUD。このように、数字はあなたが望むほど大きくすることができます。最初のケースでは、手動で100個の項目があったのであれば、あなたは `location.hash`が`# `を含むことをかなり長いリストに

+0

ありがとう – odd

関連する問題