我现在正在自定义编码一个图像滑块,并为每个滑块图像和缩略图添加一个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)
。串接字符串和数字会导致字符串串接。