0

我有 2 个输入框,所以我在每个输入框中输入了“From”和“To”值。由于某种原因,它只能在一定范围内工作,但不知道为什么。

var from = $('#from').val();
var to = $('#to').val();
var total = '';
for (i = from; i <= to; i++)
{
     if (i == to)
        total += i;
     else
        total += i + ',';
}
console.log(total);

所以这在做 1-10 之类的事情时有效,但我试过 8-30 或 8-100 不起作用......似乎无法弄清楚为什么......

4

1 回答 1

4

您必须首先将值(字符串)显式转换为数字,否则您将陷入字符串比较,即'2' > '100'.

var from = +$('#from').val();
var to = +$('#to').val();

我为此使用一元运算+符。你也可以使用这个:

var from = parseInt($('#from').val(), 10);
var to = parseInt($('#to').val(), 10);

请参阅此答案以确定哪个更适合您的目的。就我个人而言,我会选择第一个,简短而甜蜜:)

于 2013-05-21T17:37:42.280 回答