Javascript 将不返回任何内容的单元格的值相乘

Javascript 将不返回任何内容的单元格的值相乘,javascript,jquery,Javascript,Jquery,我有一个函数,可以在行上循环并捕获某些单元格中的值。它成功地做到了这一点,我甚至能够返回这些单独的值。但是,当我尝试将它们多个时,它不会返回任何结果。这是我的 以下是我的功能: $('#' + value + ' .totalRacks').each(function() { $.each(this.cells, function() { var index = $(this).index() + 1; var prevRow0 = $(this).closest('tr')

我有一个函数,可以在行上循环并捕获某些单元格中的值。它成功地做到了这一点,我甚至能够返回这些单独的值。但是,当我尝试将它们多个时,它不会返回任何结果。这是我的

以下是我的功能:

$('#' + value + ' .totalRacks').each(function() {
  $.each(this.cells, function() {
    var index = $(this).index() + 1;
    var prevRow0 = $(this).closest('tr').prev().find('td:nth-child(' + index + ')');
    var prevRow1 = $(this).closest('tr').prev().prev().prev().find('td:nth-child(' + index + ')');
    if (!isNaN(parseInt(prevRow0.text()))) {
      var td1 = parseInt(prevRow0.text());
    }
    if (!isNaN(parseInt(prevRow1))) {
      var td2 = parseInt(prevRow1);
    }
    var product = parseInt((td1 * td2));
    $(this).html(product);
  });
});

你有几个逻辑问题。首先,您可以使用单个
each()
调用循环通过
td
单元格,但您错过了对
prerow1
text()
的检索。如果您解决了这些问题,代码就会正常工作。您还可以通过将默认值设置为
0
来整理
isNaN
检查。试试这个:

$('#' + value + ' .totalRacks td:not(:first, :last)').each(function() {
    var index = $(this).index() + 1;
    var prevRow0 = $(this).closest('tr').prev().find('td:nth-child(' + index + ')');
    var prevRow1 = $(this).closest('tr').prev().prev().prev().find('td:nth-child(' + index + ')');

    var td1 = parseInt(prevRow0.text(), 10) || 0;
    var td2 = parseInt(prevRow1.text(), 10) || 0;    
    var product = parseInt(td1 * td2);
    $(this).html(product);
});

$('.totalRacks')。每个(函数(){
$.each(this.cells,function()){
var index=$(this.index()+1;
var prevRow0=$(this.closest('tr').prev().find('td:nth child('+index+')));
var prevRow1=$(this.closest('tr').prev().prev().prev().find('td:n个子('+index+')));
var td1=parseInt(prevRow0.text());
var td2=parseInt(prevRow1.text());
var乘积=parseInt((td1*td2));
$(this).html(产品);
});
});
。表格样式{
背景:白色;
边界半径:3px;
边界塌陷:塌陷;
边缘顶部:15px;
/*高度:320px*/
/*保证金:自动*/
/*最大宽度:600px*/
/*填充物:5px*/
/*宽度:100%*/
盒影:0 5px 10px rgba(0,0,0,0.1);
动画:无限浮动;
}
th{
颜色:#D5DDE5;
背景:#333;
边框底部:4px实心#9ea7af;
右边框:1px实心#343a45;
字体大小:12px;
字号:100;
填充:7px;
文本对齐:左对齐;
文本阴影:0 1px 1px rgba(0,0,0,0.1);
垂直对齐:中间对齐;
}
第一个孩子{
边框左上半径:3px;
}
最后一个孩子{
边框右上角半径:3px;
边界权:无;
}
tr{
边框顶部:1px实心#C1C3D1;
边框底部:1px实心#C1C3D1;
颜色:#666B85;
字号:5px;
字体大小:正常;
文本阴影:0 1px 1px rgba(256、256、256、0.1);
}
tr:悬停td{
背景:#444;
颜色:#FFFFFF;
边框顶部:1px实心#22262e;
边框底部:1px实心#22262e;
}
tr:第一个孩子{
边界顶部:无;
}
tr:最后一个孩子{
边框底部:无;
背景色:#333333;
}
tr:N个孩子(奇数)td{
/*背景:#EBEBEB*/
}
tr:n子对象(奇数):悬停td{
背景:#444;
}
tr:最后一个孩子td:第一个孩子{
边框左下半径:3px;
}
tr:最后一个孩子td:最后一个孩子{
边框右下半径:3px;
}
/*总色彩*/
#sumLw>tbody>tr:最后一个孩子>td{
颜色:#D5DDE5;
背景:#333333!重要;
}
#sumWtd>tbody>tr:最后一个孩子>td{
颜色:#D5DDE5;
背景:#333333!重要;
}
#sumStd>tbody>tr:最后一个孩子>td{
颜色:#D5DDE5;
背景:#333333!重要;
}
#catSumLw>tbody>tr:最后一个孩子>td{
颜色:#D5DDE5;
背景:#333333!重要;
}
#catSumWtd>tbody>tr:最后一个孩子>td{
颜色:#D5DDE5;
背景:#333333!重要;
}
#catSumStd>tbody>tr:最后一个孩子>td{
颜色:#D5DDE5;
背景:#333333!重要;
}
#mvpWtd>tbody>tr:最后一个孩子>td{
颜色:#D5DDE5;
背景:#333333!重要;
}
#mvpStd>tbody>tr:最后一个子项>td{
颜色:#D5DDE5;
背景:#333333!重要;
}
/*隐藏一些mvp列*/
/*#mvpWtd>tbody>td:n个孩子(6){
显示:无;
}*/
运输署{
背景:#FFFFFF;
填充物:5px;
文本对齐:左对齐;
垂直对齐:中间对齐;
字体大小:300;
字体大小:12px;
文本阴影:-1px-1px 1px rgba(0,0,0,0.1);
右边框:1px实心#C1C3D1;
}
td:最后一个孩子{
右边框:0px;
}
文本左{
文本对齐:左对齐;
}
文本中心{
文本对齐:居中;
}
右文本{
文本对齐:右对齐;
}
td.text-left{
文本对齐:左对齐;
}
文本中心{
文本对齐:居中;
}
td.text-right{
文本对齐:右对齐;
}

贮藏特性
原型A
原型B
原型C
原型D
原型E
原型F
原型G
原型H
原型I
PROTO J
原K
原生动物
原型M
原生动物
原O
原型P
原型Q
原型R
原生动物
全部的
商店数量
5.
8.
39
110
329
408
642
542
393
309
291
171
302
120
166
67
18
10
5.
3,935
货架/商店
279
270
246
257
236
215
204
189
225
178
166
151
140
121
108
94
84
67
62
3292
机架总数

第二个
中有一个简单的错误,如果
-body:
var td2=parseInt(prewrow1)
---您没有使用第一个
if
中类似的
text()
值。在
if
condition.hmm中添加了相同的内容,但仍然没有雪茄