The Lodge is members-only design/dev videos and Office Hours.

Next Office Hours Session: "Implementing an SVG Icon System" Nov 30 - 6:00 PM Eastern

Cookie Getter/Setter

Last updated on:
 * Gets or sets cookies
 * @param name
 * @param value (null to delete or undefined to get)
 * @param options (domain, expire (in days))
 * @return value or true
_.cookie = function(name, value, options)
    if (typeof value === "undefined") {
        var n, v,
            cookies = document.cookie.split(";");
        for (var i = 0; i < cookies.length; i++) {
            n = $.trim(cookies[i].substr(0,cookies[i].indexOf("=")));
            v = cookies[i].substr(cookies[i].indexOf("=")+1);
            if (n === name){
                return unescape(v);
    } else {
        options = options || {};
        if (!value) {
            value = "";
            options.expires = -365;
        } else {
            value = escape(value);
        if (options.expires) {
            var d = new Date();
            d.setDate(d.getDate() + options.expires);
            value += "; expires=" + d.toUTCString();
        if (options.domain) {
            value += "; domain=" + options.domain;
        if (options.path) {
            value += "; path=" + options.path;
        document.cookie = name + "=" + value;

Reference URL


  1. nick
    Permalink to comment#

    How do you use this?

    • Samuel0Paul
      Permalink to comment#

      well just add the js code and access the function with the corresponding options…

      call the function by sending @value as “undefined” to get the value of the cookie named <name>
      to set a “value” for a cookie named <name> call the function with @name as <name> and @value as “value

  2. Maarx
    Permalink to comment#

    Wow dirty ! Based on both Underscore.js (I guess) and jQuery and not even specified. Oo’

  3. tyl

    yea how do u this chunk of codes?!

Leave a Comment

Posting Code

We highly encourage you to post problematic HTML/CSS/JavaScript over on CodePen and include the link in your post. It's much easier to see, understand, and help with when you do that.

Markdown is supported, so you can write inline code like `<div>this</div>` or multiline blocks of code in in triple backtick fences like this:

  function example() {
    element.innerHTML = "<div>code</div>";

There's a whole bunch of content on CSS-Tricks.

Search for Stuff   •   Browse the Archives

Get the Newsletter ... or get the RSS feed