簡體   English   中英

jQuery在文本中添加一個數字

[英]jQuery adding a number to text

我正在嘗試做一些事我雖然很簡單。 將值1添加到數字中。

然而,數字是純文本,事情變得有點混亂。 正如你可能猜到的那樣,我對此很新。

我的目標是在現有分數上加1分,分數有一個小數位,例如1.3。 因此,添加點后的期望結果是2.3。 但是我寫的當前腳本是返回添加點到第二個小數位,我不明白為什么。

謝謝您的幫助。

var getPoints = parseInt($('.awesome-points').text(), 10).toFixed(1);
alert(getPoints);
var addPoint = 1;
var newScore = getPoints + addPoint;
$('.awesome-points').text(newScore);

標記

.toFixed()返回一個字符串(參見MDN文檔 ),這就是getPoints + addPoint執行字符串連接而不是添加的原因。

執行添加調用該方法:

// unary + converts any numerical string to a number (no matter whether float
// or int)
var getPoints = +$('.awesome-points').text();
var newScore = getPoints + 1;
$('.awesome-points').text(newScore.toFixed(1));

或者更簡潔:

$('.awesome-points').text(function(i, val) {
    return (+val + 1).toFixed(1);
});

這是如何工作的:

您可以傳遞一個函數 ,而不是將值傳遞給.text() 將對每個所選元素執行此功能。 傳遞給函數的第一個參數是所選元素集中元素的索引,第二個參數是當前文本內容。 返回值將設置為新文本內容。
這是一種讀取和寫入文本內容的好方法,無需兩次調用.text()

(+val + 1).toFixed(1)的計算方法如下:第一個val通過一元加( +val )轉換為數字,然后增加一( + 1 )。 .toFixed(1)在該操作的結果上被調用。

如果文本無法成功轉換為數字, +val將返回NaN 我認為這不會發生在你的情況下,但這可以很容易地用表達式來處理

return ((+val || 0) + 1).toFixed(1); 

這意味着,如果+val計算為false (包括NaN ),我們使用0代替。 這是JavaScript中的常見模式,另請參閱Javascript 中“options = options || {}”的含義是什么?

我想你想要的是這樣的

var getPoints = $('.awesome-points').text();
//alert(getPoints);
var addPoint = 1;
var newScore = parseFloat(getPoints) + addPoint;
$('.awesome-points').text(newScore.toFixed(1));

似乎這是你的答案,toFixed()將一個數值轉換為一個字符串,所以通過在你的過程中稍后制作toFixed函數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM