javascript - "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!
解决方案
这是更正的版本,您在第 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;
}
}());
推荐阅读
- haskell - 在haskell中创建具有多个条件的列表
- webpack - 如何加载在处理另一个模块时作为副作用生成的“动态生成”模块?
- html - 需要制作 3 列,我想使用 Divs 来做,但不工作
- .net - 为什么 SqlTransaction 被僵尸化了
- firebase - Firebase 实时数据库不会添加数据,但 Firebase 身份验证和 Firestore 可以完美运行
- c++ - 数组的静态声明和动态声明有什么区别
- flutter - 从rest api解析数据时出错-“尝试调用:演员
- html - 当元素在另一个元素中时,CSS位置粘性无法正常工作
- c++ - 使用包含回调的 SWIG GO 和 C++ 包装器创建共享库时出现问题
- javascript - 如何在 Chart.js 的图表中显示数据标签?