You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jquery-cookie插件:如何设置expires为1天以内的时长?

问题分析与解决方法

代码中的关键错误

  1. 语法错误:设置Cookie的代码存在调用格式错误,$.cookie(name, $(this).prop('checked')), { ... }里的逗号误用,正确的插件调用格式应为$.cookie(name, value, options),当前写法导致配置对象未被传入插件,expires参数完全没生效。
  2. 类型匹配问题:$(this).prop('checked')返回布尔值,插件存储时会自动转为字符串,读取时直接赋值给prop('checked')虽能被浏览器自动转换,但统一类型可避免潜在问题。

修正后的代码

$(document).ready(function(){
    $(".ing_check").each(function(){
        var name = $(this).attr('name');
        // 读取时将字符串转为布尔值,匹配prop的参数类型
        if($.cookie(name) === "true"){
            $(this).prop('checked', true);
        }
    });
    $(".ing_check").change(function(){
        var isChecked = $(this).prop('checked');
        var name = $(this).attr('name');
        var date = new Date();
        date.setTime(date.getTime() + 3 * 1000);

        // 修正语法错误,正确传入配置对象
        $.cookie(name, isChecked.toString(), {
            path: '/',
            expires: date
        });
    })
});

补充说明

jquery-cookie插件本身支持传入Date对象作为expires参数,不管过期时长是几秒还是几天都能生效,你之前的问题完全是语法错误导致配置未被识别,并非插件不支持短时效Cookie。若需删除Cookie,只需将expires设置为一个过去的Date对象即可。

内容的提问来源于stack exchange,提问作者Astw41

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 00:00:55