2011-08-05 118 views
2

我如何添加一個條件語句說像jQuery的:如果URL中包含特定的哈希值

if(window.location.href.indexOf("#/brandpartners")) 
    { 
    $("#brandpartners").addClass("specialbrand"); 
    } 

哈希似乎打破聲明有條件地添加類。有沒有更好的辦法?

+0

你是什麼意思的「散列」? – Naor

回答

9

首先,你不能以這種方式使用indexOf。當它沒有被發現時,它返回-1,這不是假的。

對我來說,使用位置對象中的哈希值的內置解析更有意義。我建議做這種方式:

if (window.location.hash == "#brandpartners") { 
    $("#brandpartners").addClass("specialbrand"); 
} 

我不知道你的URL結構,但不應該有必要對#一個簡單的哈希值後斜槓。但是,如果你堅持使用斜線,它應該是這樣的:

if (window.location.hash == "#/brandpartners") { 
    $("#brandpartners").addClass("specialbrand"); 
} 
+0

他可能正在使用散列,因爲他正在通過xhr請求從/ brandpartners頁面加載頁面內容。你的答案的其餘部分是現貨。 – Shakakai

+0

真棒!感謝jfriend! – Paul

1

哈希(#)不破的聲明在爲我所有。但我不知道爲什麼當你不需要時,你在那裏有/

var str = "http://stackoverflow.com/questions/6950161#hmenus"; 
alert(str.indexOf("#hmenus")); 

此代碼提醒42,這意味着它應該做你想做的。我

1

正如@ jfriend00最高審計機關,它應該是:

if(window.location.href.indexOf("#/brandpartners")!=-1) 
      { 
$("#brandpartners").addClass("specialbrand"); 
      } 
1

indexOf()返回-1如果字符串沒有找到,它作爲計算「truthy」這樣,你的if聲明沒有做什麼你認爲它是。所以請嘗試:

if (window.location.href.indexOf("#/brandpartners") != -1) {}