如何使用jQuery設置和取消設置cookie,例如建立一個名爲test
的cookie並將其值設置爲1
? javascript
2019年4月更新 html
Cookie的讀取/操做不須要jQuery,所以請不要使用下面的原始答案。 java
轉到https://github.com/js-cookie/js-cookie ,而後在其中使用不依賴jQuery的庫。 jquery
基本示例: git
// Set a cookie Cookies.set('name', 'value'); // Read the cookie Cookies.get('name') => // => 'value'
有關詳細信息,請參見github上的文檔。 github
參見插件: json
https://github.com/carhartl/jquery-cookie 瀏覽器
而後,您能夠執行如下操做: cookie
$.cookie("test", 1);
刪除: dom
$.removeCookie("test");
此外,要在Cookie上設置特定天數(此處爲10天)的超時時間:
$.cookie("test", 1, { expires : 10 });
若是省略expires選項,則cookie成爲會話cookie,並在瀏覽器退出時被刪除。
涵蓋全部選項:
$.cookie("test", 1, { expires : 10, // Expires in 10 days path : '/', // The value of the path attribute of the cookie // (Default: path of page that created the cookie). domain : 'jquery.com', // The value of the domain attribute of the cookie // (Default: domain of page that created the cookie). secure : true // If set to true the secure attribute of the cookie // will be set and the cookie transmission will // require a secure protocol (defaults to false). });
讀取cookie的值:
var cookieValue = $.cookie("test");
若是cookie是在與當前路徑不一樣的路徑上建立的,則您可能但願指定path參數:
var cookieValue = $.cookie("test", { path: '/foo' });
更新(2015年4月):
以下面的評論所述,使用原始插件的團隊已刪除了新項目( https://github.com/js-cookie/js-cookie )中的jQuery依賴項,該項目具備與相同的功能和通用語法jQuery版本。 顯然,原始插件沒有任何用。
您能夠使用此處提供的插件。
https://plugins.jquery.com/cookie/
而後寫一個cookie作$.cookie("test", 1);
要訪問設置的cookie,請執行$.cookie("test");
無需特別使用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); }
看一眼
在瀏覽器中設置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。
<script type="text/javascript"> function setCookie(key, value, expiry) { var expires = new Date(); expires.setTime(expires.getTime() + (expiry * 24 * 60 * 60 * 1000)); document.cookie = key + '=' + value + ';expires=' + expires.toUTCString(); } function getCookie(key) { var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)'); return keyValue ? keyValue[2] : null; } function eraseCookie(key) { var keyValue = getCookie(key); setCookie(key, keyValue, '-1'); } </script>
您能夠像這樣設置Cookie
setCookie('test','1','1'); //(key,value,expiry in days)
你能夠像這樣得到餅乾
getCookie('test');
最後,您能夠像這樣擦除cookie
eraseCookie('test');
但願它將對某人有所幫助:)
編輯:
若是要將cookie設置爲全部路徑/頁面/目錄,則將path屬性設置爲cookie
function setCookie(key, value, expiry) { var expires = new Date(); expires.setTime(expires.getTime() + (expiry * 24 * 60 * 60 * 1000)); document.cookie = key + '=' + value + ';path=/' + ';expires=' + expires.toUTCString(); }
謝謝,vicky