我是jQuery的新手,但这可能只是我认为的一个非常基本的代码问题 - 令人尴尬我无法弄清楚 - 让它通过一个愚蠢的解决方案工作,但真的很想知道我错过了什么?
我成功从动态生成的文本中获取值。价值是百分比,所以我正在切掉%符号。我试图在屏幕上设置一个条形图来显示%,但是需要在它上面添加一些尺寸(50px)才能填充div。下面的代码完全符合我的要求......但为什么我不能只是'x + = 50'甚至'x = x + 50'?其中任何一个都会让酒吧一路走到屏幕上。我试着添加'px',因为我猜我不知道单位......但没有快乐。
$(document).ready(function() {
$('.animate').each(function(){
var x = $(this).text().slice(0,-1);
for (a = 0; a < 50; a ++) // Stewpid
x ++;
var posInfo = {'width': x};
$(this).animate(posInfo, 1100);
});
});
任何人都能把我踢到脑袋,看看我搞砸了什么?
答案 0 :(得分:2)
$(function(){
$('.animate').each(function(){
var x = parseInt($(this).text());
x += 50;
var posInfo = {'width': x};
$(this).animate(posInfo, 1100);
});
});
问题在于$(this).text()
是一个字符串,即使您删除了%
符号。
现在,在JS中,+
既是add运算符又是字符串连接,因此结果将是一个字符串,而不是一个整数。
相反,++
运算符只是一个整数,所以它在执行算术运算之前将字符串转换为int。
只需使用parseInt
,就会为您删除%
,并将结果转换为int