【问题标题】:Jquery cookie not detect no existJquery cookie 未检测到不存在
【发布时间】:2017-03-10 03:55:17
【问题描述】:

当给定的 cookie 不存在时,结果必须是 null 或 undefined,但在这种情况下 favouritescook 不存在但脚本认为确实如此。

对于 null 或 undefined,结果必须是“OK Detect”,但结果是“BAD no detect result”。为什么这不起作用?

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.js"></script>
<script>
actcookies=jQuery.cookie("favouritescook");
function fav(id)
{
    if (actcookies=='undefined' || actcookies=='null')
    {
        alert("OK detect");
    }
    else
    {
        alert("BAD Not detect Result : "+actcookies);
    }
}
</script>

<div onclick="fav(1);">Test Now 1</div>

我在不同的浏览器中尝试过,结果相同。我不明白这个。

【问题讨论】:

  • 你的条件不对。
  • 不知道你为什么投了反对票。你的语法有点粗糙,但很明显你不是以英语为母语的人。你不应该为此投反对票。你的问题很好。
  • 你使用的是哪个版本的jscookie?
  • jquery.cookie 插件

标签: javascript jquery cookies


【解决方案1】:

问题是它不等于字符串'undefined' 或字符串'null',它匹配值undefined 和null,没有引号('')。

去掉引号,它应该可以正常工作。

【讨论】:

    【解决方案2】:

    它不会返回undefined 你需要将你的控制器更改为

    if (typeof actcookies=='undefined' || !actcookies)
    {
        alert("OK detect");
    }
    else
    {
        alert("BAD Not detect Result : "+actcookies);
    }
    

    【讨论】:

    • 其实一个值可以是未定义的。虽然您的做法是正确的,但您也可以不使用typeof 进行检查。此外,使用 ! 运算符实际上会改变他正在做的事情,因为如果它是 0 或 false 也是如此,而不仅仅是 null。
    • 是的,问题出在 ('') 上,为此我需要加上引号,并且只将 undefined 或 null 设置为 true 或 false,这是我的错误,问候
    【解决方案3】:

    这应该可以工作

        actcookies=jQuery.cookie("favouritescook");
    function fav(id)
    {
        if (actcookies==undefined || actcookies==null)
        {
            alert("OK detect");
        }
        else
        {
            alert("BAD Not detect Result : "+actcookies);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-28
      • 2021-12-25
      • 2021-05-05
      • 1970-01-01
      • 2019-01-25
      • 1970-01-01
      相关资源
      最近更新 更多