簡體   English   中英

在javascript中求和兩個值

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

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