Javascript -=操作员工作但不工作+=

Javascript -=操作员工作但不工作+=,javascript,operators,Javascript,Operators,我将获取查询结果,在其上循环,并尝试在将其输出到页面之前进行一些调整。我似乎无法让+=操作符在所有浏览器中正常工作。尽管如此,-=操作符似乎工作正常。基本上,+=只是串联 我已经尝试强制结果为数字,但这似乎也不起作用 var str = '<h2>The Score</h2>' for (var i = 0; i < data.message.DATA.length; i++) { var theName = data.message.DATA[

我将获取查询结果,在其上循环,并尝试在将其输出到页面之前进行一些调整。我似乎无法让
+=
操作符在所有浏览器中正常工作。尽管如此,
-=
操作符似乎工作正常。基本上,
+=
只是串联

我已经尝试强制结果为数字,但这似乎也不起作用

var str = '<h2>The Score</h2>'

    for (var i = 0; i < data.message.DATA.length; i++) {

    var theName = data.message.DATA[i][columnMap.ENTRYID]
        switch (theName)
        {
        case "jrd":
            newname = "Carmen";
            theNumber = data.message.DATA[i][columnMap.TOTALCOUNT] -= 110;
            if ($('#entryid').val() == "jrd"){
                $('#recordcount').text(theNumber);
            }
            break;
        case "ejf":
            newname = "Elijah";
            theNumber = Number(data.message.DATA[i][columnMap.TOTALCOUNT] += 50);
            if ($('#entryid').val() == "ejf"){
                $('#recordcount').text(theNumber);
            }
            break;
        }


        str += '<b>'+newname+'</b>'
        str += ' '+theNumber+'<br/>'
    }

    $("#score").html(str)
    }
var str='The Score'
对于(var i=0;i
}
$(“#分数”).html(str)
}
这是我的ColdFusion查询返回的数据。我正在使用
$.ajax()
调用CFC。。。
{“message”:{“COLUMNS”:[“ENTRYID”,“TOTALCOUNT”],“DATA”:[“ejf”,“62”],[“gdd”,“52”],[“jrd”,“215”],[“kpf”,“70”]],“error”:false}

我想你是想写的

Number(data.message.DATA[i][columnMap.TOTALCOUNT]) + 50;

您仍在连接号码呼叫。

我想您是想写

Number(data.message.DATA[i][columnMap.TOTALCOUNT]) + 50;

您仍在连接号码呼叫。

其他答案解决了一半的问题,但您似乎也希望设置
TOTALCOUNT
。你可以这么做,但我认为你要的是一个最小的解决方案,那么把对象作为变量引用,然后使用它,你可以使用
+
-
,保持一行

/* for (;;) { */

var DATAi = data.message.DATA[i], // added new var `DATAi`
    theName = DATAi[columnMap.ENTRYID];
switch (theName) {
    case "jrd":
        newname = "Carmen";
        theNumber = DATAi[columnMap.TOTALCOUNT] = +DATAi[columnMap.TOTALCOUNT] - 110; // made this match
        if ($('#entryid').val() == "jrd") {
            $('#recordcount').text(theNumber);
        }
        break;
    case "ejf":
        newname = "Elijah";
        theNumber = DATAi[columnMap.TOTALCOUNT] = +DATAi[columnMap.TOTALCOUNT] + 50; // modified
    //  ...

其他答案解决了一半的问题,但您似乎也希望设置
TOTALCOUNT
。你可以这么做,但我认为你要的是一个最小的解决方案,那么把对象作为变量引用,然后使用它,你可以使用
+
-
,保持一行

/* for (;;) { */

var DATAi = data.message.DATA[i], // added new var `DATAi`
    theName = DATAi[columnMap.ENTRYID];
switch (theName) {
    case "jrd":
        newname = "Carmen";
        theNumber = DATAi[columnMap.TOTALCOUNT] = +DATAi[columnMap.TOTALCOUNT] - 110; // made this match
        if ($('#entryid').val() == "jrd") {
            $('#recordcount').text(theNumber);
        }
        break;
    case "ejf":
        newname = "Elijah";
        theNumber = DATAi[columnMap.TOTALCOUNT] = +DATAi[columnMap.TOTALCOUNT] + 50; // modified
    //  ...

你为什么要包装
+=
呼叫
号码
?你想完成什么?您的意思是在将新值分配给编号时同时递增/递减
data.message.data[i][columnMap.TOTALCOUNT]
?结果不需要是数字,而是每个操作数。因此,您可能需要将data.message.data[i]强制转换为数字为什么
data.message.data[i][columnMap.TOTALCOUNT]
string???@Bergi我不确定为什么将其强制转换为字符串。我怀疑它会以字符串的形式出现在我的JSON结果中。我已经编辑了我的问题,以包含调用我的ColdFusion查询的结果。
$.ajax()
为什么要包装
+=
调用
Number
?您试图实现什么?您的意思是在将新值分配给编号时同时递增/递减
data.message.data[i][columnMap.TOTALCOUNT]
?结果不需要是数字,而是每个操作数。因此,您可能需要将data.message.data[i]强制转换为数字为什么
data.message.data[i][columnMap.TOTALCOUNT]
string???@Bergi我不确定为什么将其强制转换为字符串。我怀疑它会以字符串的形式出现在我的JSON结果中。我已经编辑了我的问题,以包含调用我的ColdFusion查询的结果
$.ajax()
Number(0)+=1
-
引用错误:赋值中的左侧无效
Number(0)+=1
-
引用错误:赋值中的左侧无效
我正在用脚本更新两个不同的DOM元素。如果您以jrd身份登录,除了页面底部的分数列表之外,您还会在页面右侧的一个大框中看到您的“分数”。对于这个问题,我已经将
案例
语句缩短了很多…@Ofeargall是的。。我不想说“如果
-=
的施法很好,那么为什么不干脆
-=-50
?”所以我写了一个答案,显示施法和设置,而不重复
data.message.data[I]
4次。由于对象是ByRef,
o={a:1};p=o;p['a']=2;o['a']==2我正在用脚本更新两个不同的DOM元素。如果您以jrd身份登录,除了页面底部的分数列表之外,您还会在页面右侧的一个大框中看到您的“分数”。对于这个问题,我已经将
案例
语句缩短了很多…@Ofeargall是的。。我不想说“如果
-=
的施法很好,那么为什么不干脆
-=-50
?”所以我写了一个答案,显示施法和设置,而不重复
data.message.data[I]
4次。由于对象是ByRef,
o={a:1};p=o;p['a']=2;o['a']==2