key对应多值

来源:互联网 发布:淘宝怎么设置花呗付款 编辑:程序博客网 时间:2024/05/22 12:40

js中获取同一个key多个value的cookie值

 (2017-06-02 13:28:21)
转载
标签: 

js

 

cookie



 通常情况下,我们在js中获取cookie值时,会利用以上引用中的$.cookie("Key")的方法,但是,有些时候,在获取一些下图这样的cookie值的时候,可能就不能够获取到我们想要的值

这种情况下,想要判断或者获取key为“huikaoba_login_error”的值为“aginlogin”,得到的答案,不一定是正确的。定位到cookie.js中获取value的方法,可以发现
源码如下:
  var cookies = document.cookie.split('; ');
        for (var i = 0, l = cookies.length; i < l; i++) {
            var parts = cookies[i].split('=');
            if (decode(parts.shift()) === key) {
                var cookie = decode(parts.join('='));
                return config.json ? JSON.parse(cookie) : cookie;
            }
        }

也就是,只会获取key为“huikaoba_login_error”的第一个cookie值,所以,不一定能够知道你获取的到底是哪一个,所以你的判断获取取值,都是未定的。在此,重写获取方法(ps:我在此,只是判断是否存在某个key为“huikaoba_login_error”,value为“aginlogin”的cookie是否存在)
   //判断某个cookie值是否存在
        function judgeCookie(key,value) {
            var cookies = document.cookie.split('; ');
            for (var i = 0; i < cookies.length; i++) {
                var parts = cookies[i].split('=');
                if (parts[0]==key&&parts[1] == value) {
                    return true;
                }
            }
            return false;
        }


这样,就可以解决问题了。