繁体   English   中英

如何在Java脚本中通过Cookie获得单个值

[英]how to get single value by cookie in java script

Java脚本代码是存储cookie

document.cookie = 'CookieName='+'grid';

我想获得CookieNamegrid我必须存储许多cookie,但是我在cookie的第一个索引处得到了这个cookie存储

$( document ).ready(function() {
    var CookieName=document.cookie; 
      if(CookieName =='grid')
    { 
   $('#tab_b').hide();
   $('#tab_a').show();
}
else { 
  $('#tab_a').hide(); 
  $('#tab_b').show();
}

});

如何获得CookieName值

我写了一个小函数(我可能可以使它效率更高,但是我已经使用了很长时间了),它应该对您有用:

function getCookieAttr(attribute) {
    var attr = attribute + "="; // create an attribute string
    var parts = document.cookie.split(';'); // split the cookie into parts
    for(var i = 0; i <parts.length; i++) { // loop through the parts for each item
        var item = parts[i];
        while (item.charAt(0)==' ') { // account for spaces in the cookie
            item = item.substring(1); // set the item
        }
        if (item.indexOf(attr) == 0) { // if the item matches the attribute
            return item.substring(attr.length,item.length); // return the value
        }
    }
    return "";
}

要使用该函数,请传递属性名称:

document.cookie = "CookieName=grid";
console.log(getCookieAttr('CookieName'));

我给您的印象是,您找到杰伊·布兰查德(Jay Blanchard)的答案的时间过长,因此我将提供一个简短的选择。 但是首先让我说点别的。 作为对杰伊·布兰查德答案的评论,您写道:

谢谢兄弟,我已经有了它,并且它非常简单和简短地检查了它var allcookies = document.cookie; cookiearray = allcookies.split(';'); name = cookiearray[0].split('=')[0]; value = cookiearray[0].split('=')[1]; var allcookies = document.cookie; cookiearray = allcookies.split(';'); name = cookiearray[0].split('=')[0]; value = cookiearray[0].split('=')[1];

但是,我强烈建议您重新考虑一下,因为这假定CookieName始终是第一个cookie。 (有人可能会说“但我会以某种方式确保它始终存在”,但重点是,这是键/值,而不是数组,因此该方法在概念上是错误的和令人困惑的,或者如他们所说,是错误的做法)。

现在,对于代码:

var cookieValue = document.cookie.replace(/(?:(?:^|.*;\s*)CookieName\s*\=\s*([^;]*).*$)|^.*$/, "$1");

这是我从Cookie的MDN页面上偷偷窃取的,如果您想了解有关Cookie的更多信息,我强烈建议您这样做。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM