jQuery利用cookie 實現(xiàn)本地收藏功能(不重復無需多次命名)
1、cookie是什么:
①、cookie 是存儲于訪問者計算機中的變量。每當一臺計算機通過瀏覽器來訪問某個頁面時,那么就可以通過 JavaScript 來創(chuàng)建和讀取 cookie。
?、?、實際上 cookie 是存于用戶硬盤的一個文件,這個文件通常對應于一個域名,當瀏覽器再次訪問這個域名時,便使這個cookie可用。因此,cookie可以跨越一個域名下的多個網(wǎng)頁,但不能跨越多個域名使用。
③、不同瀏覽器對 cookie 的實現(xiàn)也不一樣。即保存在一個瀏覽器中的 cookie 到另外一個瀏覽器是 不能獲取的。
PS:cookie 和 session 都能保存計算機中的變量,但是 session 是運行在服務器端的,而客戶端我們只能通過 cookie 來讀取和創(chuàng)建變量。
2、cookie的作用:
?、?、用戶在第一次登錄某個網(wǎng)站時,要輸入用戶名密碼,如果覺得很麻煩,下次登錄時不想輸入了,那么就在第一次登錄時將登錄信息存放在 cookie 中。下次登錄時我們就可以直接獲取 cookie 中的用戶名密碼來進行登錄。
PS:雖然 瀏覽器將信息保存在 cookie 中是加密了,但是可能還是會造成不安全的信息泄露
②、類似于購物車性質(zhì)的功能,第一次用戶將某些商品放入購物車了,但是臨時有事,將電腦關閉了,下次再次進入此網(wǎng)站,我們可以通過讀取 cookie 中的信息,恢復購物車中的物品。
PS:實際操作中,這種方法很少用了,基本上都是將這些信息存儲在數(shù)據(jù)庫中。然后通過查詢數(shù)據(jù)庫的信息來恢復購物車里的物品
③、頁面之間的傳值。在實際開發(fā)中,我們往往會通過一個頁面跳轉(zhuǎn)到另外一個頁面。后端服務器我們可以通過數(shù)據(jù)庫,session 等來傳遞頁面所需要的值。但是在瀏覽器端,我們可以將數(shù)據(jù)保存在 cookie 中,然后在另外頁面再去獲取 cookie 中的數(shù)據(jù)。
PS:這里要注意 cookie 的時效性,不然會造成獲取 cookie 中數(shù)據(jù)的混亂。
正文開始,下面通過代碼給大家介紹jq cookie 本地收藏功能,
JS核心部分
說明:用split(',')分隔字符串轉(zhuǎn)換數(shù)組數(shù)組,把上一次收藏的id 和這一次的收藏用 + “,”+ 當前id 來存入,到時候用split() 方法 轉(zhuǎn)換成數(shù)組即可。
<script type="text/javascript"> $(function(){ var arr = $.cookie("attractionsid").split(','); console.log($.cookie()); for (var i = 0; i < arr.length; i++) { if(parseInt(arr[i]) == parseInt( 請?zhí)钊隝D值 )){ //判斷是否收藏過,收藏過亮圖標 $('#shoucang2').removeClass('hide'); $('#shoucang1').addClass('hide'); break; } }; $("#shoucang").click(function(event) { var judge = true; console.log(arr) for (var i = 0; i < arr.length; i++) { if(parseInt(arr[i]) == parseInt(請?zhí)钊隝D值)){ arr.splice(i,1); $.cookie("attractionsid", arr, { expires: 361}); console.log('取消收藏'); $('#shoucang2').addClass('hide'); $('#shoucang1').removeClass('hide'); judge = false; break; } }; if(judge){ $.cookie("attractionsid", $.cookie("attractionsid") + ","+"請?zhí)钊隝D值", { expires: 361}); console.log('收藏成功'); $('#shoucang2').removeClass('hide'); $('#shoucang1').addClass('hide'); } }); }) </script>
總結
以上所述是小編給大家介紹的jQuery利用cookie 實現(xiàn)本地收藏功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關文章
基于jQuery實現(xiàn)手風琴菜單、層級菜單、置頂菜單、無縫滾動效果
這篇文章主要介紹了基于jQuery實現(xiàn)手風琴菜單、層級菜單、置頂菜單、無縫滾動菜單的圖文說明,本文效果展示和代碼實現(xiàn)給大家介紹的非常詳細,需要的朋友可以參考下2017-07-07jQuery Ajax提交表單查詢獲得數(shù)據(jù)實例代碼
用戶輸入一個表單,輸入準考證和驗證碼,驗證用戶是否輸入表單,點擊查詢提交,然后從服務器得到返回的數(shù)據(jù)并顯示出來2012-09-09使用CDN和AJAX加速WordPress中jQuery的加載
這篇文章主要介紹了使用CDN和AJAX加速WordPress中jQuery的加載的方法,注意一下WordPress中以及CDN的Google連接在內(nèi)地的網(wǎng)絡問題,需要的朋友可以參考下2015-12-12jQuery實現(xiàn)form表單基于ajax無刷新提交方法詳解
這篇文章主要介紹了jQuery實現(xiàn)form表單基于ajax無刷新提交方法,結合實例形式分析了jQuery使用$.ajax()方法實現(xiàn)無刷新提交的詳細步驟與實現(xiàn)技巧,并附帶了一個較為完整的實例供大家參考,需要的朋友可以參考下2015-12-12jQuery Validation Engine驗證控件調(diào)用外部函數(shù)驗證的方法
這篇文章主要介紹了jQuery Validation Engine驗證控件調(diào)用外部函數(shù)驗證的方法,需要的的朋友參考下吧2017-01-01