在javascript中求和两个值

时间:2012-11-08 14:21:26

标签: javascript jquery onclick sum

这我认为这将是一个愚蠢的问题,但现在就这样了。

我需要动态添加一个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”。

感谢您的提示和帮助!

10 个答案:

答案 0 :(得分:3)

改变这个:

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;

答案 1 :(得分:2)

您正在向一个数字添加一个字符串,这会导致+运算符进行字符串连接。

首先将字符串转换为数字。

var latestFileUploaderId = parseFloat($('.well-large .file-uploader').last().attr('id').split('-')[2]) + 1;

答案 2 :(得分:2)

将字符串从id转换为整数以正确递增:

var lastID = parseInt($('.well-large .file-uploader').last().attr('id').split('-')[2]);
var latestFileUploaderId = lastID + 1;

答案 3 :(得分:1)

var latestFileUploaderId = parseInt($('.well-large .file-uploader').last().attr('id').split('-')[2],10) + 1;

您正在共同输入一个字符串和一个数字... parseInt会将字符串转换为其数值,然后添加就可以了。

答案 4 :(得分:1)

您应该使用parseInt

var latestFileUploaderId = parseInt($('.well-large .file-uploader').last().attr('id').split('-')[2]) + 1;

答案 5 :(得分:1)

您可以使用parseInt()将ID转换为数字。

var latestFileUploaderId = parseInt($('.well-large .file-uploader').last().attr('id').split('-')[2]) + 1;

答案 6 :(得分:1)

$('.well-large .file-uploader').last().attr('id').split('-')[2]

是一个字符串。您需要将其解析为int(float)。 尝试使用parseInt,parseFloat

答案 7 :(得分:1)

您需要将值强制转换为数字。像这样:

var latestFileUploaderId = Number($('.well-large .file-uploader').last().attr('id').split('-')[2]) + 1;

答案 8 :(得分:1)

正如其他人所说,你需要先将变量更改为数字,但我不会使用parseInt()或类似的。相反,乘以1要快得多,所以我建议这样的东西:

var last = $('.well-large .file-uploader').last().attr('id').split('-')[2];
var latestFileUploaderId = (last * 1) + 1;

答案 9 :(得分:1)

JavaScript使用+运算符来连接在您的情况下发生的字符串。算术上只汇总了数字类型。 为了增加ID,你必须在之前将其转换为整数。

console.log ('1' + 1 ); 
String '11'

console.log( parseInt('1') + 1 )
Int 2