这我认为这将是一个愚蠢的问题,但现在就这样了。
我需要动态添加一个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”。
感谢您的提示和帮助!
答案 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