[英]Sum two values in javascript
我認為這將是一個愚蠢的問題,但在這里它。
我需要動態添加一個div並給它ID + 1,具體取決於最后添加的div的先前添加元素的ID。
div是
<div id="file-uploader-0" class="file-uploader"></div>
所以我粗略地提出了這個代碼:
$('#addOneMoreFileOrGroup').on('click', function(){
var latestFileUploaderId = $('.well-large .file-uploader').last().attr('id').split('-')[2] + 1;
$('.well-large .control-group:last').after('<div class="control-group deal-type-online"> \
<label class="control-label">File / File Group Title:</label> \
<div class="controls"> \
<input class="span4 file-title" type="text"> \
<span class="question label label-warning" data-title="File / Group Name:" data-content="Name for your file or group of related files (for example your brand logotype in different file formats)." data-original-title="">?</span> \
<div id="file-uploader-' + latestFileUploaderId + '" class="file-uploader"></div> \
</div> \
</div>');
});
但問題是,最后我收到“file-uploader-01”,“file-uploader-011”,“file-uploader-0111”。
我嘗試使用“latestFileUploaderId ++”,它給出了正確的結果一次為“1”,然后是“11”,“111”,“1111”。
感謝您的提示和幫助!
改變這個:
var latestFileUploaderId = $('.well-large .file-uploader').last().attr('id').split('-')[2] + 1;
對此:
var latestFileUploaderId = parseInt($('.well-large .file-uploader').last().attr('id').split('-')[2],10) + 1;
您正在向一個數字添加一個字符串,這會導致+
運算符進行字符串連接。
首先將字符串轉換為數字。
var latestFileUploaderId = parseFloat($('.well-large .file-uploader').last().attr('id').split('-')[2]) + 1;
將字符串中的字符串轉換為整數以正確遞增:
var lastID = parseInt($('.well-large .file-uploader').last().attr('id').split('-')[2]);
var latestFileUploaderId = lastID + 1;
var latestFileUploaderId = parseInt($('.well-large .file-uploader').last().attr('id').split('-')[2],10) + 1;
你正在共同一個字符串和一個數字... parseInt會將字符串轉換為它的數值,然后添加將起作用。
你應該使用parseInt
:
var latestFileUploaderId = parseInt($('.well-large .file-uploader').last().attr('id').split('-')[2]) + 1;
您可以使用parseInt()
將id轉換為數字。
var latestFileUploaderId = parseInt($('.well-large .file-uploader').last().attr('id').split('-')[2]) + 1;
$('.well-large .file-uploader').last().attr('id').split('-')[2]
是一個字符串。 您需要將其解析為int(float)。 嘗試使用parseInt,parseFloat
您需要將值轉換為數字。 像這樣:
var latestFileUploaderId = Number($('.well-large .file-uploader').last().attr('id').split('-')[2]) + 1;
正如其他人所說,你需要先將變量更改為Number,但我不會使用parseInt()或類似的。 相反,乘以1要快得多,所以我推薦這樣的東西:
var last = $('.well-large .file-uploader').last().attr('id').split('-')[2];
var latestFileUploaderId = (last * 1) + 1;
JavaScript使用+運算符來連接在您的情況下發生的字符串。 算術上只匯總了數字類型。 為了增加ID,您必須先將其轉換為整數。
console.log ('1' + 1 );
String '11'
console.log( parseInt('1') + 1 )
Int 2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.