繁体   English   中英

计算每个tr的平均td

[英]Calculate average td in each tr

我想在每个表行中使用输入.toan.ly.hoa计算平均值class='dtb'

我的小提琴在这里

问题:只计算表的第一行,然后将结果放在下面的其他行中,而不是在每个表行中进行计算。

$(document).ready(function () {
    $('#outputtable > tbody > tr').each(function () {
        var toan = parseInt($('.toan').html());
        var ly = parseInt($('.ly').html());
        var hoa = parseInt($('.hoa').html());
        var dtb = ((toan + ly + hoa) / 3);
        $(this).find('.dtb').html(dtb.toFixed(1));
    });
});

您需要在行中找到每个输入类的实例

$('.toan').html()将始终返回在整个页面中找到的该类的第一个元素的值

而是使用find()

var toan = parseInt($(this).find('.toan').html());

您可能要从这里更改:

$('#outputtable > tbody > tr').each(function () {
  var tr = $(this);

  var toan = +tr.find('.toan').text();
  var ly = +tr.find('.ly').text();
  var hoa = +tr.find('.hoa').text();
  var dtb = (toan + ly + hoa) / 3;

  tr.find('.dtb').html(dtb.toFixed(1));
});

每个函数(在本例中)中使用$(this) ,它将分配给当前的tr元素。 在该元素中,您将找到一个具有名为toan - ly - hoa的类的元素。

要在每个td标签中获取文本,只需使用.text()方法(无需使用.html()方法)。

要将字符串转换为数字(根据您的情况),您可以使用

+$(this).find('.toan').text();

无需使用parseInt方法。 可读性更好。

我看到了你的小提琴代码,

更改此附加表行的代码

 $("#outputtable").find("tbody:last").append("<tr><td>"+ stt +"</td><td class='ten'>"+_ten+"</td><td class='toan'>"+_toan+"</td><td class='ly'>"+_ly+"</td><td class='hoa'>"+_hoa+"</td><td class='dtb'>?</td></tr>");

至:

$("#outputtable").append("<tr><td>"+ stt +"</td><td class='ten'>"+_ten+"</td><td class='toan'>"+_toan+"</td><td class='ly'>"+_ly+"</td><td class='hoa'>"+_hoa+"</td><td class='dtb'>?</td></tr>");

以及此平均计算代码:

$(document).ready(function () {
    $('#outputtable > tbody > tr').each(function () {
        var toan = parseInt($(this).find('.toan').html());
        var ly = parseInt($(this).find('.ly').html());
        var hoa = parseInt($(this).find('.hoa').html());
        var dtb = ((toan + ly + hoa) / 3);
        $(this).find('.dtb').html(dtb.toFixed(1));
    });
});

至:

    $("#tinhdtb").on('click', () => {
         $('#outputtable > tbody > tr').each(function () {
    debugger;
        var toan = parseInt($(this).find('.toan').html());
        var ly = parseInt($(this).find('.ly').html());
        var hoa = parseInt($(this).find('.hoa').html());
        var dtb = ((toan + ly + hoa) / 3);
        $(this).find('.dtb').html(dtb.toFixed(1));

    });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM