Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 一旦值增加,数字就停止工作_Javascript_Jquery - Fatal编程技术网

Javascript 一旦值增加,数字就停止工作

Javascript 一旦值增加,数字就停止工作,javascript,jquery,Javascript,Jquery,我有一个函数,所以我有一个列表: 1,2,3,4,5,6,7,8,9 如果我点击数字3,数字3会被删除,所有大于这个值的值都会被一个删除,所以它会变成这样: 1,2,3,4,5,6,7,8 唯一的问题是,一旦我们开始进入十分之一,函数就不能工作,例如,如果我有: 8,9,10,11,12,13 它的意思是如果我照9的样子: 8,9,10,11,12 但事情是这样的: 8,10,11,12 一旦我们达到两位数,就完全忽略了。。。。以下是我所拥有的: $("button").each(functio

我有一个函数,所以我有一个列表:

  • 1,2,3,4,5,6,7,8,9
  • 如果我点击数字3,数字3会被删除,所有大于这个值的值都会被一个删除,所以它会变成这样:

  • 1,2,3,4,5,6,7,8
  • 唯一的问题是,一旦我们开始进入十分之一,函数就不能工作,例如,如果我有:

  • 8,9,10,11,12,13
  • 它的意思是如果我照9的样子:

  • 8,9,10,11,12
  • 但事情是这样的:

  • 8,10,11,12
  • 一旦我们达到两位数,就完全忽略了。。。。以下是我所拥有的:

    $("button").each(function(){
        if (pad2(cl_on)<pad2($(this).val())){
            $(this).val($(this).val()-1);
        }
    
    $(“按钮”)。每个(函数(){
    
    如果(pad2(cl_on)将字符串转换为数字,例如使用一元
    +
    。您还可以将代码简化为:

    $("button").val(function(i, val) {
        return +cl_on < +val ? val - 1 : val;
    });
    
    $(“按钮”).val(函数(i,val){
    返回+cl_on<+val?val-1:val;
    });
    

    正如我在评论中所说,您正在比较字符串,并且在词法(?)顺序中,
    10
    位于
    2
    之前。

    Felix所说的,或者使用parseInt()实现相同的结果

    $("button").each(function(){
        if (parseInt(cl_on, 10) < parseInt($(this).val(), 10)){
            $(this).val(parseInt($(this).val(), 10) - 1);
        }
    
    $(“按钮”)。每个(函数(){
    if(parseInt(cl_on,10)
    你说“如果我点击say number 3,所有大于此值的值都将被删除”,但是如果你点击3,你肯定会留下列表
    1,2,3
    ?但是你留下了很多大于3的数字?我有一个函数,所以说我有一个列表什么?如果我点击say number 3,所有大于此值的值(…)那么为什么只删除了9呢?你的问题不清楚。但从我看到的情况来看,你比较字符串而不是数字,
    '10'<'2'
    ,但是
    2<10
    ,这似乎是你的问题。所以数字3被删除了,然后所有大于3的值都被1删除了……对不起!