如何删除现有的类名并添加一个带有jQuery和cookie的新名称?

如何删除类名并将其替换为新名称?

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

在这种情况下,当您单击红色或绿色或蓝色时,正文类名称将相应更改。 它还会制作一个可以节省选择的cookie。

我尝试了jQuery .addClass并且它正在工作,但是它在现有的类之上添加了一个类。 此外,我无法保存cookie。

使用:

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

这是完整的工作代码 :

 $(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); } 

这里的工作示例 。 感谢QuirksMode预先制作的cookie代码(cookie-cutter cookie代码?)

如果没有jQuery,您可以使用以下简单的行来完成此操作:

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

这有效地删除了分配给元素的类,并将其替换为您想要的任何内容。

对于cookie, PPK有一些简单的方法来读/写/删除cookie 。

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

你还需要removeClass 。

Russ Cam的回答和Hank Gay的回答将会有所帮助。 对于cookie,您可以使用jQuery cookie插件 。

您应该能够按照有关如何根据需要设置和读取cookie的示例进行操作。