如何使用jQuery设置和取消设置cookie,例如创建一个名为test的cookie并将值设置为1?
当前回答
确保不要做这样的事情:
var a = $.cookie("cart").split(",");
然后,如果cookie不存在,调试器将返回一些无用的消息,如“。Cookie不是一个函数”。
总是先声明,然后在检查null后进行拆分。是这样的:
var a = $.cookie("cart");
if (a != null) {
var aa = a.split(",");
其他回答
在浏览器中设置cookie的简单示例:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>jquery.cookie Test Suite</title>
<script src="jquery-1.9.0.min.js"></script>
<script src="jquery.cookie.js"></script>
<script src="JSON-js-master/json.js"></script>
<script src="JSON-js-master/json_parse.js"></script>
<script>
$(function() {
if ($.cookie('cookieStore')) {
var data=JSON.parse($.cookie("cookieStore"));
$('#name').text(data[0]);
$('#address').text(data[1]);
}
$('#submit').on('click', function(){
var storeData = new Array();
storeData[0] = $('#inputName').val();
storeData[1] = $('#inputAddress').val();
$.cookie("cookieStore", JSON.stringify(storeData));
var data=JSON.parse($.cookie("cookieStore"));
$('#name').text(data[0]);
$('#address').text(data[1]);
});
});
</script>
</head>
<body>
<label for="inputName">Name</label>
<br />
<input type="text" id="inputName">
<br />
<br />
<label for="inputAddress">Address</label>
<br />
<input type="text" id="inputAddress">
<br />
<br />
<input type="submit" id="submit" value="Submit" />
<hr>
<p id="name"></p>
<br />
<p id="address"></p>
<br />
<hr>
</body>
</html>
简单的只是复制/粘贴并使用此代码设置您的cookie。
不需要特别使用jQuery来操作cookie。
来自QuirksMode(包括转义字符)
function createCookie(name, value, days) {
var expires;
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toGMTString();
} else {
expires = "";
}
document.cookie = encodeURIComponent(name) + "=" + encodeURIComponent(value) + expires + "; path=/";
}
function readCookie(name) {
var nameEQ = encodeURIComponent(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 decodeURIComponent(c.substring(nameEQ.length, c.length));
}
return null;
}
function eraseCookie(name) {
createCookie(name, "", -1);
}
看一看
我如何删除一个现有的类名,并添加一个新的与jQuery和cookies?
确保不要做这样的事情:
var a = $.cookie("cart").split(",");
然后,如果cookie不存在,调试器将返回一些无用的消息,如“。Cookie不是一个函数”。
总是先声明,然后在检查null后进行拆分。是这样的:
var a = $.cookie("cart");
if (a != null) {
var aa = a.split(",");
下面是如何使用JavaScript设置cookie:
以下代码摘自https://www.w3schools.com/js/js_cookies.asp
函数setCookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays*24*60*60*1000)); var expires=" expires="+ d.toUTCString(); 文件中。cookie = cname + "=" + cvalue + ";"+ expires + ";path=/"; }
现在你可以使用下面的函数获取cookie:
function getCookie(cname) { var 名称 = 别名 + “=”; var decodedCookie = decodeURIComponent(document.cookie); var ca = decodedCookie.split(';'); for(var i = 0, i <ca.length, i++) { var c = ca[i]; 而 (c.charAt(0) == ' ') { c = c.子字符串(1); } if (c.indexOf(name) == 0) { 返回 c.substring(name.length, c.length); } } 返回 “”; }
最后,这是检查cookie的方法:
函数checkCookie() { var username = getCookie("username"); If(用户名!= ""){ alert(“欢迎再次光临”+用户名); }其他{ username = prompt("请输入您的姓名:",""); If (username != "" && username != null) { setCookie("username", username, 365); } } }
如果你想删除cookie,只需将expires参数设置为一个经过的日期:
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
与之前的答案相比,我减少了操作的数量,我使用以下方法。
function setCookie(name, value, expiry) {
let d = new Date();
d.setTime(d.getTime() + (expiry*86400000));
document.cookie = name + "=" + value + ";" + "expires=" + d.toUTCString() + ";path=/";
}
function getCookie(name) {
let cookie = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');
return cookie ? cookie[2] : null;
}
function eatCookie(name) {
setCookie(name, "", -1);
}
推荐文章
- 在数组中获取所有选中的复选框
- 如何为Firebase构建云函数,以便从多个文件部署多个函数?
- 如何发送推送通知到web浏览器?
- AngularJS:工厂和服务?
- js:将一个组件包装成另一个组件
- 父ng-repeat从子ng-repeat的访问索引
- JSHint和jQuery: '$'没有定义
- 模仿JavaScript中的集合?
- 用JavaScript验证电话号码
- 如何在HTML5中改变视频的播放速度?
- 谷歌地图API v3:我可以setZoom后fitBounds?
- 用jQuery检查Internet连接是否存在?
- 如何使用滑动(或显示)函数在一个表行?
- ES6/2015中的null安全属性访问(和条件赋值)
- 与push()相反;