Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.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,我有一个函数,它在一些单元格上循环并执行一些计算。基本上,我给一个变量设置一个值作为起始点……这个数字在经过每个单元格后应该是递增的。数学和一切都按预期进行,但变量没有递增,这使得一切都错了。它只捕获第一个值,在下面的示例中是5.00。以下是我的功能: $(function percentSpace() { var theIndexer = 20; var x = $('#rackPlan0 > tbody > tr.categorySub > td:not(:firs

我有一个函数,它在一些单元格上循环并执行一些计算。基本上,我给一个变量设置一个值作为起始点……这个数字在经过每个单元格后应该是递增的。数学和一切都按预期进行,但变量没有递增,这使得一切都错了。它只捕获第一个值,在下面的示例中是5.00。以下是我的功能:

$(function percentSpace() {
  var theIndexer = 20;
  var x = $('#rackPlan0 > tbody > tr.categorySub > td:not(:first-child,:last-child)');
  x.each(function() {
    var a = $('#rackPlan1 > tbody > tr:last-child > td:nth-child(' + theIndexer + ')');
    var b = $(this);
    var c = parseFloat(a.text(), 10) || 0;
    console.log(theIndexer);
    var d = parseFloat(b.text(), 10) || 0;
    var perc = parseFloat((d / c) * 100);
    $(this).html(perc.toFixed(0)).append('%');
  });
  theIndexer++;
})
索引器没有增加…不知道为什么此时此刻


这是我的完整示例,请确保向右滚动以查看其他表格。任何帮助都将不胜感激

必须在每个回调函数中移动增量行,否则直到该迭代器之后才会执行。见下例:

$function percentSpace{ 变量指数=20; var x=$'rackPlan0>tbody>tr.categorySub>td:not:first child,:last child'; x、 每个函数{ 变量a=$'rackPlan1>tbody>tr:last child>td:nth child'+theIndexer+; var b=这一美元; var c=parseFloata.text,10 | | 0; console.logtheIndexer; var d=parseFloatb.text,10 | | 0; var perc=parsefloat/c*100; $this.htmlperc.toFixed0.append“%”; 索引器++; }; //输出:索引器:22 console.log'indexer:',索引器; } 类别组 类别 原生动物 固定点 季节性的 头和手D23 0.50 567 季节性的 头和手D23 0.50 2,666 季节性的 头和手D23 0.50 3,233 季节性的 头和手D23总计 0.50 3,233 季节性的 泳衣D23 0 582 季节性的 泳衣D23 0 2,793 季节性的 泳衣D23 0 3,375 季节性的 泳衣D23 0.50 588 季节性的 泳衣D23 0.50 2,755 季节性的 泳衣D23 0.50 3,343 季节性的 泳衣D23 1 587 季节性的 泳衣D23 1 2,766 季节性的 泳衣D23 1 3,353 季节性的 泳衣D23 0 537 季节性的 泳衣D23 0 2,594 季节性的 泳衣D23 0 3,131 季节性的 游泳衣D23总计 1.50 13,202 总计 2 16,435 贮藏特性 原型A 原生动物 全部的 存储Ct 5. 3. 3,873 运行存储Ct 5. 3,873 3,873 分配的机架 10 1. 106 超过/低于 -5 -5 0.50 20% 泳装D23%空间 4 1.50 80%
这最后帮我完成了任务…谢谢大家

   $(function percentSpace() {
                var theIndexer = 20;
                var x = $('#rackPlan0 > tbody > tr.categorySub > td:not(:first-child)');
                x.each(function () {    
                    var a = $('#rackPlan1 > tbody > tr:last-child > td:nth-child(' + theIndexer + ')');
                    var b = $(this);
                    var c = parseFloat(a.text(), 10) || 0;                        
                    var d = parseFloat(b.text(), 10) || 0;
                    var perc = parseFloat((d / c) * 100);
                    if ($(this).hasClass('catSub')) {
                        $(this).html(perc.toFixed(0)).append('%');
                        theIndexer++;
                    }
                    else if ($(this).hasClass('catFixP')) {
                        theIndexer = 20;
                    }
                });                    
            })

您的增量不在循环内。另外,您的增量变量是多余的,因为each handler函数将当前迭代的索引作为参数。除了@RoryMcCrossan所说的之外,这看起来像是对:nth child的滥用。为什么不选择另一组td元素,并通过索引访问它们呢?我有两个拼写错误。一个是subCat而不是catSub,另一个是错误的变量名。为了便于将来参考,将代码示例减少到最少的示例会有所帮助。这包括HTML。那里有很多与问题无关的额外标记……通过将回调直接传递给.text,可以使标记更短、更清晰。这也更有效。我从parseFloat中删除了基数参数,因为它在该函数中没有任何作用。很抱歉,这仍然是:nth child的一个讨厌的用法。在选择元素时,应该更好地利用已经定义的类。