parseInt()没有按预期工作

时间:2015-02-10 18:44:19

标签: jquery parseint

我现在正在自定义编码图像滑块,我正在为每个滑块图像和缩略图添加data-slideNum属性,如下所示:

$('.slide').each(function(i) {
    $(this).attr('data-slideNum',i);
});

$('.thumbnail').each(function(i) {
    $(this).attr('data-slideNum',i);
});

当然这是0-X幻灯片的编号。在滑块下方,我想添加一个标题,显示您所在的数字幻灯片,因此我尝试将1添加到幻灯片编号变量并滑动总数,以便数字正确无误:

$('.slideNum').html(parseInt(x+1)+' of '+parseInt(slideTotal+1));

第二个parseInt()工作正常,但第一个是连接而不是解析。

所以我不是2 of 5而是21 of 5等等。

有什么想法吗?

4 个答案:

答案 0 :(得分:1)

您正在x1上执行字符串连接,然后获取int值。

基本上你正在做的是:

var x = "2";
x = x + 1;
parseInt(x);

您可以在1调用返回整数后将x添加到parseInt来解决此问题。

$('.slideNum').html( 
     ( parseInt(x, 10) + 1 ) 
     + ' of '
     + ( parseInt(slideTotal, 10) + 1 )
   ); // closes .html

此外,提供基数为parseInt

总是一个好主意

如果1是数组的长度,则无需将slideTotal添加到slideTotal,您也无需将其转换为int }。所以:

$('.slideNum').html( ( parseInt(x, 10) + 1 ) + ' of ' + slideTotal);

应该足够了。

答案 1 :(得分:1)

$('.slideNum').html(parseInt(x+1)+' of '+parseInt(slideTotal+1));

是问题

你是parsing( x + 1 )首先给你一个字符串,因为x是一个字符串。然后你要把那个字符串解析成一个整数......你应该parse(x)然后加1,你就可以得到它。

应该是

$('.slideNum').html((parseInt(x) + 1) +' of '+parseInt(slideTotal+1));

答案 2 :(得分:1)

首先连接,而不是尝试解析:

parseInt(x+1)

其中 x 可能是一个字符串,你将它与1连接,其中你得到2 + 1 = 21表示为字符串,最后你只是将21解析为一个整数。

你必须首先解析 x ,而不是算术,例如:

parseInt(x) + 1 

答案 3 :(得分:1)

尝试使用parseInt(x) + 1代替parseInt(x + 1)。连接字符串和数字会导致字符串连接。