首页 > 解决方案 > "Invalid left-hand side in assignment" when trying to add a cookie to a variable?

问题描述

I keep getting an error on line 31 of this script:

var cAdd = 1;

function getCookie(cname) {
    var name = cname + "=";
    var decodedCookie = decodeURIComponent(document.cookie);
    var ca = decodedCookie.split(';');
    for(var i = 0; i <ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
            c = c.substring(1);
        }
        if (c.indexOf(name) == 0) {
            return c.substring(name.length, c.length);
        }
    }
    return "";
}

var myCookie = getCookie("money");

if (myCookie == null) {
    document.cookie = "money="+money;
}


console.log(Number(getCookie("money")))
document.getElementById("m").innerHTML = "$"+getCookie("money");

var giveMoney = (function() {
    return function() {
        console.log(Number(getCookie("money"))
        console.log(Number(getCookie("money")) += cAdd)
        var addMoney = Number(getCookie("money")) += cAdd;
        document.cookie = "money=" + addMoney;
        document.getElementById("m").innerHTML = "$"+getCookie("money");

        return getCookie("money");
    }
}(0)); // -1 if you want the first increment to return 0

var removeCookieNotice = (function() {
    return function() {
        var elem = document.getElementById('CookieNotice');
        elem.parentNode.removeChild(elem);
        return false;
    }
}());

I've tried googling the error, but to no peril.

Any help would be awesome, thanks!

标签: javascript

解决方案


这是更正的版本,您在第 33 行有一个错误: var addMoney = Number(getCookie("money")) += cAdd; 基本上您已经在左侧分配了“=”符号,然后尝试在该行的右端使用 +=。

var cAdd = 1;

function getCookie(cname) {
    var name = cname + "=";
    var decodedCookie = decodeURIComponent(document.cookie);
    var ca = decodedCookie.split(';');
    for(var i = 0; i <ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
            c = c.substring(1);
        }
        if (c.indexOf(name) == 0) {
            return c.substring(name.length, c.length);
        }
    }
    return "";
}

var myCookie = getCookie("money");

if (myCookie == null) {
    document.cookie = "money="+money;
}


console.log(Number(getCookie("money")))
document.getElementById("m").innerHTML = "$"+getCookie("money");

var giveMoney = (function() {
    return function() {
        console.log(Number(getCookie("money"))
        console.log(Number(getCookie("money")) += cAdd)
        // You don't need += here, + is just enaugh
        var addMoney = Number(getCookie("money")) + cAdd;
        document.cookie = "money=" + addMoney;
        document.getElementById("m").innerHTML = "$"+getCookie("money");

        return getCookie("money");
    }
}(0)); // -1 if you want the first increment to return 0

var removeCookieNotice = (function() {
    return function() {
        var elem = document.getElementById('CookieNotice');
        elem.parentNode.removeChild(elem);
        return false;
    }
}());

推荐阅读