一旦值增量数字停止工作

时间:2011-09-20 10:40:05

标签: javascript jquery

我有一个功能所以说我有一个列表:

  1. 1,2,3,4,5,6,7,8,9
  2. 如果我单击说3号,则会删除数字3,并且所有大于此值的值将被一个带走,所以它最终看起来像这样:

    1. 1,2,3,4,5,6,7,8-
    2. 唯一的问题是,一旦我们开始进入十分之一,该功能就不起作用,例如,如果我有:

      1. 8,9,10,11,12,13
      2. 它的意思是,如果我喜欢9:

        1. 8,9,10,11,12
        2. 但它是这样的:

          1. 8,10,11,12
          2. 一旦我们得到双重数字,就完全无视......继承人我拥有的东西:

            $("button").each(function(){
                if (pad2(cl_on)<pad2($(this).val())){
                    $(this).val($(this).val()-1);
                }
            

            });

            我确实有一个修复,这个上升到99但是一旦我转到100以后同样的问题resurects,这是我必须修复它的功能达到99 ...

              

            function pad2(number){        return(数字&lt; 10?“0”:“”)+ number}

            即使必须使用此功能也一定有问题......有人可以帮助我,所以如果我达到1000或10000,我再也没有这个问题吗?

2 个答案:

答案 0 :(得分:1)

将字符串转换为数字,例如使用一元+。您还可以将代码简化为:

$("button").val(function(i, val) {
    return +cl_on < +val ? val - 1 : val;
});

正如我在评论中所说,您正在比较字符串,而在词汇(?)顺序中,10例如在2之前。

答案 1 :(得分:0)

Felix所说的,或使用parseInt()来实现同样的目标;

$("button").each(function(){
    if (parseInt(cl_on, 10) < parseInt($(this).val(), 10)){
        $(this).val(parseInt($(this).val(), 10) - 1);
    }