Javascript 删除Cookie功能不起作用

Javascript 删除Cookie功能不起作用,javascript,cookies,Javascript,Cookies,我想删除我的cookie,代码可用于获取和设置cookie,,,但删除cookie不起作用 请告诉我答案 代码 一个 两个 三 四 五 小甜饼 删除cookies var saveclass=null; 函数saveTheme(cookieValue){ var sel=document.getElementById('ThemeSelect'); saveclass=saveclass?saveclass:document.body.className; document.body.clas

我想删除我的cookie,代码可用于获取和设置cookie,,,但删除cookie不起作用 请告诉我答案

代码


一个
两个
三
四
五
小甜饼
删除cookies
var saveclass=null;
函数saveTheme(cookieValue){
var sel=document.getElementById('ThemeSelect');
saveclass=saveclass?saveclass:document.body.className;
document.body.className=saveclass+''+sel.options[sel.value].innerHTML.replace(“,”).toLowerCase();
setCookie('theme',cookieValue,365);
}
函数setCookie(cookieName、cookieValue、nDays){
var today=新日期();
var expire=新日期();
如果(nDays==null | | nDays==0)
nDays=1;
expire.setTime(今天.getTime()+3600000*24*nDays);
document.cookie=cookieName+“=”+escape(cookieValue)+“expires=“+expire.TogmString()”;
}
函数getCookie(名称){
var re=new RegExp(name+“=([^;]+)”);
var值=re.exec(document.cookie);
返回值(值!=null)?unescape(值[1]):null;
}
函数ShowCookie(){
var a=getCookie(名称);
警报(a);
}
函数deleteCookie(名称){
if(getCookie(名称)){
var cookie_date=new date();//当前日期和时间
cookie\u date.setTime(cookie\u date.getTime()-1);
document.cookie=cookieName+=”;expires=“+cookie_date.togmString();
}
}
cookieName在此范围内未定义。将其更改为
name
,这是传递给函数的参数,它应该可以工作

还可以使用一个
+
来连接字符串,这里还有一个
=
,这也阻止了它的工作


查看以查看它的运行情况。

这里有一个JSFIDLE:

将Cookie过期设置为:

function delete_cookie( name ) {
  document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}
或者更好

var createCookie, readCookie, eraseCookie;

createCookie = function(name,value,days) {
  var date, expires;

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

readCookie = function(name) {
  var nameEQ, ca, i, c; 

  nameEQ = name + "=";
  ca = document.cookie.split(';');
  for(i=0;i < ca.length;i++) {
      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;
}

eraseCookie = function(name) {
  createCookie(name,"",-1);
}
var createCookie、readCookie、eraseCookie;
createCookie=函数(名称、值、天数){
var日期,到期日;
如果(天){
日期=新日期();
date.setTime(date.getTime()+(天*24*60*60*1000));
expires=“;expires=“+date.toutString();
}
else expires=“”;
document.cookie=name+“=”+value+expires+“path=/”;
}
readCookie=函数(名称){
变量nameEQ,ca,i,c;
nameEQ=名称+“=”;
ca=document.cookie.split(“;”);
对于(i=0;i

请参阅此帖子:

我有不同的代码,可能是重复的。它不能重复@padarom这不是关于你的代码,而是关于问题。在链接的线程中有一个函数,它完全满足您的需要。因此它是重复的。我更改了问题名称,请删除重复的标记。代码状态非常糟糕。您正在使用未定义的参数调用函数,
document.cookie=cookieName+=”;expires=“
--
cookieName
未定义,
+=
没有您认为的功能,等等etci还有很多其他帖子要看,还有很多代码,但我想让我的代码更完美,请建议更好的答案后,使我的代码正确的方法,我提供给你的工作刚刚好。没有完美的代码,它只能用未来的可维护性和可扩展性来衡量。您不应该在HTML元素上引用javascript方法,而是应该通过事件处理程序将函数应用于这些元素。旁白:谁投过反对票是荒谬的。对我来说很好:(打开你的控制台查看值)我不知道你在测试代码之前复制了哪些更改,但我只是使用了我在这个答案中已经发布的代码。让我们来看看。
function delete_cookie( name ) {
  document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}
var createCookie, readCookie, eraseCookie;

createCookie = function(name,value,days) {
  var date, expires;

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

readCookie = function(name) {
  var nameEQ, ca, i, c; 

  nameEQ = name + "=";
  ca = document.cookie.split(';');
  for(i=0;i < ca.length;i++) {
      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;
}

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