如何在java脚本中通过cookie获取单个值

时间:2016-05-25 12:10:35

标签: javascript jquery cookies

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值

2 个答案:

答案 0 :(得分:2)

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

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'));

答案 1 :(得分:1)

我的印象是你找到了Jay Blanchard的答案太久了,所以我会提供一个更短的选择。但首先让我说点别的。作为对Jay Blanchard的回答的评论,你写道:

  

感谢兄弟,我已经得到它,并且非常简单和简短的功能检查它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");

这是我从the MDN page on cookies中偷偷偷走的内容,如果您想了解更多有关Cookie的信息,我强烈建议您这样做。