[英]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.