如何使用jQuery删除所有的cookies

5

可能重复:
使用JavaScript清除所有cookie

我想要一个复选框来激活并一次性清除我表单中之前存储的所有cookie。如何使用jquery cookie插件实现?我在Klaus网站和这里都找不到示例。

非常感谢任何提示。

谢谢。


这个问题不是重复的,因为另一个问题是关于纯JavaScript的,而这个问题是关于jQuery的。 - VUELA
同意。JQuery 的整个目的是避免编写样板 JavaScript。正确答案是:for (var it in $.cookie()) $.removeCookie(it); 但我无法发布它,因为已被标记为重复内容。(需要 jquery-cookie 库)。 - Scott Smith
此外,被接受的答案没有考虑到 cookie 上设置路径的情况。使用库而不是编写原始 JS 的另一个原因。 - Scott Smith
2个回答

6

这个问题的被接受答案中,应该能够达到你想要的目的:

var cookies = document.cookie.split(";");
for(var i=0; i < cookies.length; i++) {
    var equals = cookies[i].indexOf("=");
    var name = equals > -1 ? cookies[i].substr(0, equals) : cookies[i];
    document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
}

有时候不需要插件,一个简单的JavaScript代码片段就可以解决问题...在这里jQuery并没有什么帮助


1
你没有回答与jQuery相关的实际问题,但链接现在满足了我的需求。谢谢。 - swan
2
这个回答并没有说明如何在 JQuery 中实现。 - KevinDeus
3
jQuery只是JavaScript的一种库,有很多情况下你并不需要jQuery,只使用纯JavaScript即可。 - Nick Craver
@VUELA 你可以将这个代码块封装在一个函数中,没有任何限制...jQuery 在这方面并没有提供任何帮助。 - Nick Craver
@NickCraver 谢谢!我明白了,我理解你的观点。 - VUELA
显示剩余6条评论

2
您不需要使用jQuery,只需使用纯JavaScript即可实现:
function setCookie(name, value, seconds) {

    if (typeof(seconds) != 'undefined') {
        var date = new Date();
        date.setTime(date.getTime() + (seconds*1000));
        var expires = "; expires=" + date.toGMTString();
    }
    else {
        var expires = "";
    }

    document.cookie = name+"="+value+expires+"; path=/";
}

并使用setCookie(cookieName, null, -1)调用。


3
但他想使用jQuery来实现这个。 - Rakesh Juyal
1
是的,如果有jQuery版本,我很乐意看一下。但我总是倾听任何可能的解决方案。谢谢。 - swan
7
你们听着,jQuery 就是 Javascript。没有任何理由去想让它变成另外一种方式,因为它们本质上是相同的。不能使用 jQuery 来做这件事情。 - Josh Stodola

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接