2012-03-14 51 views
0

我似乎能夠檢索cookie的值,但相應ID的樣式不會更改。我錯過了什麼?使用Javascript Cookie的樣式

function getCookie(name) { 
     var cookieName = document.cookie; 
     var prefix = name + "="; 
     var begin = cookieName.indexOf("; " + prefix); 
     if (begin == -1) { 
      begin = cookieName.indexOf(prefix); 
      if (begin != 0) return null; 
     } else begin += 2; 
     var end = cookieName.indexOf(";", begin); 
     if (end == -1) end = cookieName.length; 
     return unescape(cookieName.substring(begin + prefix.length, end)); 
    } 
    var value = getCookie('nameCookie'); 
    document.getElementById(value).style.height = "10%"; 

下面的代碼也不起作用

var value = getCookie('nameCookie'); 
    if (value == 'test') { 
      document.getElementById('test').style.height = "10%"; 
    } 
+0

如果你console.log(值)它是否包含你期待的ID – 2012-03-14 23:05:10

+1

@ TimWickstrom.com,他說,「他似乎已經檢索了值」 – Starx 2012-03-14 23:07:35

+0

錯過了,請嘗試console.log(document.getElementById(value ));它是什麼樣的元素?它是一個塊元素,可以有10%的高度嗎?是定義的父級高度,因此瀏覽器可以計算10%? – 2012-03-14 23:12:29

回答

3

既然你seem to be able to retrieve the value of the cookie 問題是代碼運行時,它無法找到元素,因爲DOM還沒有準備好。加載元素後,確保腳本正在運行。

只需在關閉</body>之前放置腳本塊即可。

+0

似乎沒有任何區別 – 2012-03-14 23:12:36

+0

好電話!被我自己的編碼習慣寵壞了,甚至沒有想過dom是否準備好了! – 2012-03-14 23:13:11

+0

@ TimD'Haene,你有一個'id'元素的cookie值是什麼? – Starx 2012-03-14 23:15:36