2009-04-29 80 views
2

如何刪除類名並將其替換爲新類?如何刪除現有的類名並添加一個新的jQuery和Cookie?

<style> 
    .red {background-color: #FF0000;} 
    .green{background-color: #00FF00;} 
    .blue {background-color: #0000FF;} 
</style> 

<body class="red"> 
    <ul> 
     <li><a href="">red</a></li> 
     <li><a href="">green</a></li> 
     <li><a href="">blue</a></li> 
    </ul> 
</body> 

在當你點擊紅色或綠色或藍色這種情況下,人體的類名也會隨之改變。它也會製作一個cookie來保存選擇。

我試過了jQuery.addClass,它正在工作,但是它在現有的類上添加了一個類。此外,我無法設法保存cookie。

+0

對不起,我的英語不好...... – kakkalo 2009-04-29 22:55:01

回答

15

用途:

$('.red').removeClass('red').addClass('blue'); 

Here's the full working code

$(function() { 
    $("a").click(function() { 
     var color = $(this).text(); 
     $("body").removeClass().addClass(color); 
     return false; 
    }); 
}); 

現在的cookie部分

$(function() { 
    $("a").click(function() { 
     var color = $(this).text(); 
     $("body").removeClass().addClass(color); 
     createCookie("color",color); 
     return false; 
    }); 

    if (readCookie("color") != null) { 
     $("body").removeClass().addClass(readCookie("color")); 

    } 
    else { 
     $("body").removeClass().addClass("red"); 
    } 
}); 

function createCookie(name,value,days) { 
    if (days) { 
     var date = new Date(); 
     date.setTime(date.getTime()+(days*24*60*60*1000)); 
     var expires = "; expires="+date.toGMTString(); 
    } 
    else 
     var expires = ""; 
     document.cookie = name+"="+value+expires+"; path=/"; 
    } 

    function readCookie(name) { 
     var nameEQ = name + "="; 
     var ca = document.cookie.split(';'); 
     for (var i=0;i < ca.length;i++) { 
      var c = ca[i]; 
      while (c.charAt(0)==' ') 
       c = c.substring(1,c.length); 
      if (c.indexOf(nameEQ) == 0) 
       return c.substring(nameEQ.length,c.length); 
     } 
     return null; 
    } 

    function eraseCookie(name) { 
    createCookie(name,"",-1); 
} 

Working example here。感謝您對QuirksMode預先製作的Cookie代碼(Cookie-cutter cookie代碼?)

+0

我試過了,但由於cookie的值會替換那個類名不工作。 – kakkalo 2009-04-29 22:43:29

+0

非常感謝。這工作完美。 現在用於cookie部分。有沒有其他的方式來保存沒有cookie插件 – kakkalo 2009-04-29 22:59:24

4

沒有jQuery的你可以簡單如一行做到這一點:

document.getElementsByTagName("body")[0].className = "red"; 

這有效地去分配給該元素的類以及任何你想要取代它。

對於cookie,PPK has a few simple methods to read/write/erase cookies

createCookie("mySiteCookie", "red", 7); // Set the cookie to expire in 7 days. 
readCookie("mySiteCookie"); // Should yield "red"