2015-02-11 62 views
0

我想在所有單個事件頁面上隱藏一個名爲「details」的類,但不在我的主事件頁面上。如何在具有動態ID的頁面上隱藏特定的span類?

主要事件頁面是demosite.com/events/ 單個事件頁面是demosite.com/events/?event_id=2

我已經嘗試過使用css僞類,但無法使其正常工作。我試圖用JavaScript,但它不工作 - 因爲它隱藏了兩個頁面上的「細節」類。

這是我到目前爲止嘗試過的。

$(function(){ 
    var url = document.location.href; 

    if (url.toLowerCase().indexOf('http://demosite.com/events/') >= 0) { 
    $('.details').hide(); 
    } else { 
    $('.details').show(); 
    } 
}); 
+0

如果您使用jQuery,請將標記添加到您的問題。 – j08691 2015-02-11 17:51:05

+1

你不應該檢查URL是否包含'event_id ='而不是?在我看來,它將始終包含'http:// demosite.com/events /',但查詢字符串參數將是可選的... – ochi 2015-02-11 17:51:32

+1

您的當前版本與兩個頁面都匹配。在'.indexOf('http://demosite.com/events/?event_id=')'中將'?event_id ='添加到'indexOf()'的字符串參數中。 – 2015-02-11 17:51:40

回答

1

所有的頁面將包括demosite.com/events - 你正在尋找不也有event_id小號頁。

if (document.location.search.indexOf('event_id=') >= 0)) 
    $('.details').hide(); 
} else { 
    $('.details').show(); 
} 
1

你要做的是看看是否有一個參數被傳遞給url,然後隱藏基於此。因此,這裏是一個JavaScript函數來獲取參數,並檢查它:

<script> 
$(document).ready(function() { 
    var eventid = getParamterByName('event_id'); 
    if (eventid != "") { 
     $('.details').hide(); 
    } 
    else { 
     $('.details').show(); 
    } 

}); 

function getParameterByName(name) { 
    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); 
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), 
     results = regex.exec(location.search); 
    return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); 
} 


</script> 
相關問題