2012-08-30 88 views
3

我對JS非常陌生,並且看起來很簡單。 我想做一個代碼,以便如果頁面加載與#結尾的網址,例如。 www.example.com#hashtag,那麼div將顯示,如果它沒有#該div不會顯示。JavaScript使用#標籤更改顯示

我的代碼:

JS:

<script type="text/javascript"> 
if(window.location.hash) { 
document.getElementById("displaydiv").style.display = "block"; 
} 
</script> 

HTML:

<div id="displaydiv" style="display: none; height: 100px; width: 100px; 
background-color: red;"></div> 
+1

讓您的示例的JSFiddle更容易幫助您。 – PhonicUK

+1

不要浪費讀者的時間說你是JS的新手,堅持這個問題。 –

回答

2

的代碼是正確的,但<script>正在執行得太早,<div>呈現,所以我懷疑你是在瀏覽器中得到一個JavaScript錯誤。你檢查了瀏覽器控制檯嗎?

移動<script><div>將修復它,但它可能是明智的把代碼放到一個函數,並調用它的頁面加載之後,例如:

<script type="text/javascript"> 
    function init() { 
     if (window.location.hash) { 
      document.getElementById("displaydiv").style.display = "block"; 
     } 
    } 

    window.onload = init; 
</script> 

看到Alternative to <body onload="init();">

0

這將讓哈希(#displayDiv),並顯示該特定DIV ...

<script type="text/javascript"> 
    var hasher = window.location.hash; 

    if(hasher.indexOf('displaydiv') > -1) { 
    document.getElementById("displaydiv").style.display = "block"; 
    } else if (hasher.indexOf('anotherDiv') > -1) { 
    document.getElementById("anotherDiv").style.display = "block"; 
    } 
</script> 

<div id="displaydiv" style="display: none; height: 100px; width: 100px; background-color: red;"></div> 
0

如何使用簡單的CSS解決方案usi納克:target選擇:

*:target { 
    display: block; 
}