2012-01-21 56 views
5

我有一些JQuery編寫,當用戶在Wordpress中導航到「page/2 /」時,圖像出現在側邊欄中。它的CSS最初設置爲display:none;,然後如果該URL字符串存在,我將JQuery更改爲display:block;。我寫的代碼有倒退...所以它對每個頁面都這樣做但是'/ page/2 /'。通過JQuery添加基於URL字符串的CSS類

$(document).ready(function() { 

var url = window.location.pathname; 
if(url.indexOf('/page/2/')){ 
    $('.sidebarimage').css("display","block"); 
}}); 

我一直認爲如果在If語句中沒有設置條件,它會將其視爲true,並將其視爲false。我應該在這裏放一個= 1什麼的?我錯過了什麼?

非常感謝SO

回答

4

如果條件的值轉換爲trueif塊將被輸入。在Javascript中,任何非零數字爲true,而當字符串未找到時返回值爲indexOf爲-1。因此,任何時候它都不會返回-1,這被認爲是真的,並且輸入if塊。

更改條件要明確什麼你要找的

if (url.indexOf('/page/2/') !== -1) { 
    $('.sidebarimage').css("display","block"); 
} 
+0

感謝您的解釋。那很完美。 – RCNeil

+0

所以之前,當它找到'/ page/2 /'字符串時,它返回0(false)而不是1?那是'真正'的聲明實際上沒有實現的時候了。那麼它會不會貫穿所有的測試? – RCNeil

+0

@RCNeil,除了以'/ page/2 /'開頭的字符串以外,它會執行每一個例子' – JaredPar

0

這jQuery代碼將只爲主頁

$(document).ready(function() { 

    var x = location.href; 
    var y = location.hostname; 
    var z = 'http://' + y + '/'; 

     if(x == z){ 
     $('.class').css("display","block"); 
    } 
     else{ 
     $('.class').css("display","none"); 
     } 
    });