2013-02-23 60 views
0

我正在查詢結果,在它們上面循環並在輸出到頁面之前嘗試進行一些調整。我似乎無法讓+=操作員在所有瀏覽器中正常工作。雖然,-=運營商似乎工作正常。基本上,+=只是連接。- =操作員工作,但不是+ =

我試過強迫結果是數字,但似乎也沒有工作。

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) 
    } 

下面是從我的ColdFusion查詢返回的數據。我使用$.ajax()做呼叫到CFC ...... {"message":{"COLUMNS":["ENTRYID","TOTALCOUNT"],"DATA":[["ejf","62"],["gdd","52"],["jrd","215"],["kpf","70"]]},"error":false}

+0

你爲什麼要在'Number'中包裝'+ ='調用? – 2013-02-23 01:11:46

+0

你想完成什麼?你的意思是增加/減少'data.message.DATA [i] [columnMap.TOTALCOUNT]'同時也將新值賦給'theNumber'? – 2013-02-23 01:11:58

+0

這不是_result_,你需要是數字,它是每個操作數。因此,您可能需要將data.message.DATA [i]強制轉換爲數字 – 2013-02-23 01:12:33

回答

2

我想你的意思寫

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

你還在串聯的號碼呼叫。

+1

'Number(0)+ = 1' - 'ReferenceError:賦值中無效的左手邊' – 2013-02-23 01:15:24

+1

@PaulS。 woops謝謝;這應該只是'+ 50' – 2013-02-23 01:16:15

1

其他答案解決了一半的問題,但你似乎也想要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 
    // ... 
+0

我正在用我的腳本更新兩個不同的DOM元素。如果您以jrd身份登錄,除了頁面底部的分數列表之外,您還可以在頁面右側的大框中看到您的「分數」。我已經縮短了對這個問題的'case'聲明... – Ofeargall 2013-02-23 01:37:42

+0

@Ofeargall好的..我不想說「如果' - ='投射得很好,那麼爲什麼不只是' - = - - 50'?」所以我寫了一個答案,顯示了鑄造以及設置,而不重複'data.message.DATA [i]'4次。由於對象是ByRef,所以'o = {a:1}; p = o; p ['a'] = 2; o ['a'] === 2;' – 2013-02-23 02:16:51