jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)

yizhihongxing

下面是详细讲解“jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)”的完整攻略。

简介

本攻略主要讲解如何利用 jQuery 和 Cookie 实现一个本地收藏功能,在用户点击收藏按钮时,可以将当前页面地址存储在 Cookie 中,这样用户在下次打开网站时,还可以看到之前所收藏的内容。

步骤

步骤一:引入 jQuery 和 Cookie 库

在 head 中引用 jQuery 和 Cookie 库:

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>

步骤二:添加收藏按钮

在需要添加收藏功能的页面中,添加一个收藏按钮,如下所示:

<button id="add-favorite-btn">添加收藏</button>

步骤三:绑定收藏事件

在 jQuery 中绑定按钮的 click 事件,获取当前页面的地址,并将其存储在 Cookie 中。为了防止用户多次点击收藏按钮造成重复的存储,我们需要先检查 Cookie 中是否已经存在当前页面的地址。

$(function() {
    $('#add-favorite-btn').click(function() {
        var url = window.location.href;
        var favoriteList = $.cookie('favoriteList');
        if (favoriteList) {
            // 如果 Cookie 中已经有收藏列表,判断当前页面是否已经收藏
            if (favoriteList.indexOf(url) !== -1) {
                alert('该页面已经收藏过了!');
                return;
            }
            favoriteList += '|' + url;
        } else {
            favoriteList = url;
        }
        // 将收藏列表保存到 Cookie 中
        $.cookie('favoriteList', favoriteList);
        alert('收藏成功!');
    });
});

上述代码首先获取当前页面的地址,然后从 Cookie 中获取收藏列表。如果收藏列表存在,就判断当前页面是否已经收藏过,如果收藏过就弹出提示信息并直接返回;否则将当前页面的地址添加到收藏列表的末尾,以 "|" 分隔。如果收藏列表不存在,就直接将当前页面的地址作为收藏列表保存到 Cookie 中,并弹出提示信息。

步骤四:获取已收藏列表

在需要展示收藏列表的页面中,通过 jQuery 和 Cookie 库获取已收藏的地址列表,并根据需要进行展示。

$(function() {
    var favoriteList = $.cookie('favoriteList');
    if (favoriteList) {
        // 如果 Cookie 中存在收藏列表,就展示收藏列表
        var urls = favoriteList.split('|');
        var listHtml = '';
        $.each(urls, function(index, url) {
            listHtml += '<li><a href="' + url + '">' + url + '</a></li>';
        });
        $('#favorite-list').html(listHtml);
    } else {
        $('#favorite-list').html('<li>暂无收藏</li>');
    }
});

上述代码首先从 Cookie 中获取收藏列表,如果收藏列表存在,就将列表中的地址分割成数组,并遍历每个地址,将其展示为一个链接。如果收藏列表不存在,就展示一条提示信息。展示收藏列表的代码可以自定义,上述代码只是为了演示添加的效果。

示例

下面是两个针对不同网页的示例,以演示如何添加和展示收藏列表。

示例一

网页链接:http://example.com/page1.html

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>示例一</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
    <script>
        $(function() {
            $('#add-favorite-btn').click(function() {
                var url = window.location.href;
                var favoriteList = $.cookie('favoriteList');
                if (favoriteList) {
                    // 如果 Cookie 中已经有收藏列表,判断当前页面是否已经收藏
                    if (favoriteList.indexOf(url) !== -1) {
                        alert('该页面已经收藏过了!');
                        return;
                    }
                    favoriteList += '|' + url;
                } else {
                    favoriteList = url;
                }
                // 将收藏列表保存到 Cookie 中
                $.cookie('favoriteList', favoriteList);
                alert('收藏成功!');
            });

            var favoriteList = $.cookie('favoriteList');
            if (favoriteList) {
                var urls = favoriteList.split('|');
                var listHtml = '';
                $.each(urls, function(index, url) {
                    listHtml += '<li><a href="' + url + '">' + url + '</a></li>';
                });
                $('#favorite-list').html(listHtml);
            } else {
                $('#favorite-list').html('<li>暂无收藏</li>');
            }
        });
    </script>
</head>

<body>
    <h1>示例一</h1>
    <p>这是示例一的内容。</p>
    <button id="add-favorite-btn">添加收藏</button>
    <ul id="favorite-list"></ul>
</body>

</html>

示例二

网页链接:http://example.com/page2.html

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>示例二</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
    <script>
        $(function() {
            $('#add-favorite-btn').click(function() {
                var url = window.location.href;
                var favoriteList = $.cookie('favoriteList');
                if (favoriteList) {
                    // 如果 Cookie 中已经有收藏列表,判断当前页面是否已经收藏
                    if (favoriteList.indexOf(url) !== -1) {
                        alert('该页面已经收藏过了!');
                        return;
                    }
                    favoriteList += '|' + url;
                } else {
                    favoriteList = url;
                }
                // 将收藏列表保存到 Cookie 中
                $.cookie('favoriteList', favoriteList);
                alert('收藏成功!');
            });

            var favoriteList = $.cookie('favoriteList');
            if (favoriteList) {
                var urls = favoriteList.split('|');
                var listHtml = '';
                $.each(urls, function(index, url) {
                    listHtml += '<li><a href="' + url + '">' + url + '</a></li>';
                });
                $('#favorite-list').html(listHtml);
            } else {
                $('#favorite-list').html('<li>暂无收藏</li>');
            }
        });
    </script>
</head>

<body>
    <h1>示例二</h1>
    <p>这是示例二的内容。</p>
    <button id="add-favorite-btn">添加收藏</button>
    <ul id="favorite-list"></ul>
</body>

</html>

总结

以上就是利用 jQuery 和 Cookie 实现本地收藏功能的攻略。需要注意的是,Cookie 中存储的内容大小是有限制的,如果收藏的页面过多或者页面地址过长,就可能会超过限制而导致无法正常的存储。因此,在实际应用中,还需要根据实际情况进行相关优化。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery利用cookie 实现本地收藏功能(不重复无需多次命名) - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • 聊一聊JavaScript作用域和作用域链

    下面是详细讲解“聊一聊JavaScript作用域和作用域链”的完整攻略。 JavaScript中的作用域 JavaScript中的作用域是指变量的适用范围,也就是变量能够被访问的区域。在JavaScript中,变量的作用域有全局作用域和局部作用域两种。 全局作用域 全局作用域是指在所有函数外部定义的变量,它的作用域范围是整个JavaScript程序。在全局作…

    JavaScript 2023年5月28日
    00
  • JavaScript原型对象、构造函数和实例对象功能与用法详解

    JavaScript原型对象、构造函数和实例对象功能与用法详解 前言 在讲解 JavaScript 原型对象、构造函数和实例对象之前,我们需要先了解几个概念: 属性:包括原型对象和实例对象的属性,以及函数对象的属性 方法:包括原型对象和实例对象的方法,以及函数对象的方法 原型:每个 JavaScript 对象都有一个原型对象,用于继承属性和方法 构造函数:用…

    JavaScript 2023年5月27日
    00
  • 解析John Resig Simple JavaScript Inheritance代码

    解析 John Resig 在 Simple JavaScript Inheritance 代码的思路可以分为以下几个部分: 简介 这是 John Resig 在 2008 年发布的一个 JavaScript 类继承的库,用来实现类的继承。 源代码及解析 下面我们来逐行分析源代码实现: 首先,定义了一个匿名函数,并将其赋值给 Class 变量。 var Cl…

    JavaScript 2023年6月10日
    00
  • Javascript Date setDate() 方法

    以下是关于JavaScript Date对象的setDate()方法的完整攻略,包括两个示例说明。 JavaScript Date对象的setDate()方法 JavaScript Date对象的setDate()方法设置日期对象的日期部分。该方法接受一个整数参数,表示要设置的日期。如果该参数超出了该月的最大日期,则自动调整为下一个月的第一天。 下面是使用D…

    JavaScript 2023年5月11日
    00
  • JavaScript 中的运算符和表达式介绍

    下面给你详细讲解一下“JavaScript 中的运算符和表达式介绍”的完整攻略。 运算符 在JavaScript中,运算符是用来进行各种数学和逻辑运算的符号。常见的运算符有以下几种。 算术运算符 算术运算符用于执行基本的数学运算,比如加、减、乘和除等。常用的算术运算符如下: 运算符 描述 + 加法 – 减法 * 乘法 / 除法 % 取余 ++ 自增 — 自…

    JavaScript 2023年5月17日
    00
  • js 处理URL实用技巧

    JS处理URL实用技巧 在前端开发中,我们经常需要对URL进行各种处理,例如从URL中提取参数、修改参数、获取当前页面URL等等。在本篇文章中,我们将探讨常用的JS处理URL实用技巧。 接收URL参数 我们可以使用window.location.search来获取URL中的查询参数,然后再用正则表达式或其他方法提取所需的参数。 function getUrl…

    JavaScript 2023年5月19日
    00
  • js 毫秒转天时分秒的实例

    下面是js毫秒转换成天时分秒的完整攻略。 1. 背景与需求 在实际项目中,我们通常会使用毫秒作为时间单位,而有时候我们需要将毫秒转化为更加直观易懂的时间格式,例如天时分秒格式。因此,我们需要编写一个js函数来实现毫秒转换为天时分秒的功能。 2. 实现思路 将毫秒转换为天时分秒需要进行以下的操作: 将毫秒数除以1000得到秒数,然后再将秒数除以60得到分钟数,…

    JavaScript 2023年5月27日
    00
  • js实现弹框效果

    如何通过JavaScript实现弹框效果呢?下面是一些步骤和示例代码来帮助你实现这个功能: 步骤一:创建弹出框的 HTML 代码 首先,要在 HTML 代码中创建弹出框的模板,可以使用 <div> 标签来实现: <div id="myModal" class="modal"> <div c…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部