parseInt() 没有按预期工作
parseInt() not working as expected
我现在正在对图像滑块进行自定义编码,我正在向每个滑块图像和缩略图图像添加一个 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
等等。
有什么想法吗?
您正在 x
和 1
上执行字符串连接,然后取 int
值。
基本上你所做的相当于:
var x = "2";
x = x + 1;
parseInt(x);
您可以通过在 parseInt
调用返回整数后将 1
添加到 x
来解决此问题。
$('.slideNum').html(
( parseInt(x, 10) + 1 )
+ ' of '
+ ( parseInt(slideTotal, 10) + 1 )
); // closes .html
此外,为 parseInt
提供一个基数总是一个好主意
此外,如果 slideTotal
是数组的长度,则不需要将 1
添加到 slideTotal
,也不需要将其转换为 int
。所以:
$('.slideNum').html( ( parseInt(x, 10) + 1 ) + ' of ' + slideTotal);
应该足够了。
$('.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));
您首先连接,而不是尝试解析:
parseInt(x+1)
其中 x 可能是一个字符串,您将它与 1 连接起来,得到 2 + 1 = 21 表示为字符串,最后您只是解析 21到一个整数。
您必须先解析 x,然后再进行算术运算,例如:
parseInt(x) + 1
尝试 parseInt(x) + 1
而不是 parseInt(x + 1)
。连接字符串和数字会导致字符串连接。
我现在正在对图像滑块进行自定义编码,我正在向每个滑块图像和缩略图图像添加一个 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
等等。
有什么想法吗?
您正在 x
和 1
上执行字符串连接,然后取 int
值。
基本上你所做的相当于:
var x = "2";
x = x + 1;
parseInt(x);
您可以通过在 parseInt
调用返回整数后将 1
添加到 x
来解决此问题。
$('.slideNum').html(
( parseInt(x, 10) + 1 )
+ ' of '
+ ( parseInt(slideTotal, 10) + 1 )
); // closes .html
此外,为 parseInt
提供一个基数总是一个好主意此外,如果 slideTotal
是数组的长度,则不需要将 1
添加到 slideTotal
,也不需要将其转换为 int
。所以:
$('.slideNum').html( ( parseInt(x, 10) + 1 ) + ' of ' + slideTotal);
应该足够了。
$('.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));
您首先连接,而不是尝试解析:
parseInt(x+1)
其中 x 可能是一个字符串,您将它与 1 连接起来,得到 2 + 1 = 21 表示为字符串,最后您只是解析 21到一个整数。
您必须先解析 x,然后再进行算术运算,例如:
parseInt(x) + 1
尝试 parseInt(x) + 1
而不是 parseInt(x + 1)
。连接字符串和数字会导致字符串连接。