Ben*_*son 1 javascript string variables jquery integer
所以我试图获取在for语句中递增的变量,并向其添加一个整数...但由于某种原因,它正在添加整数,就像它是一个字符串一样; 减法或乘法等其他操作按预期工作.
为什么会这样?编辑:我添加了整个功能; 问题是我尝试将2添加到变量x的位置.
令我困惑的是,我能够在.eq()对象中使用x没问题,例如......
$(function() {
$('textarea').bind('paste', function (e){
inputGroup = $(this).parent();
var ob = $(this);
if (e.type == 'paste'){
setTimeout(function(){
var data = ob.val();
var tabbed = data.replace(/\n/g, "\t");
var cells = tabbed.split("\t");
for(var x in cells) {
foo = x + 2;
alert(foo);
$(inputGroup).find('input').eq(x).val(cells[x]);
}
}, 1);
}
});
});
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
因为x是一个看起来像数字的字符串.转为Number第一个,你会得到你期望的结果:
"1" + 2 = "12"
Number("1") + 2 = 3
Run Code Online (Sandbox Code Playgroud)
编辑:现在,我看到你正在使用split将字符串转换为数组,你的问题肯定是你连接字符串.转为Number第一,你的问题解决了.
是的其他算术运算将起作用,因为它们将隐式地将操作数转换为Numbers.令人困惑的是,"2" * 3实际上会评估整数6.欢迎使用Javascript.
-tjw