Javascript jQuery-计算一个td中两个数字的和,并在新td中显示?

Javascript jQuery-计算一个td中两个数字的和,并在新td中显示?,javascript,jquery,html,Javascript,Jquery,Html,各位好,飞越者 我有以下代码: <table class="table"> <tbody> <tr> <td><a href="#">New thing</a></td> <td>2017/06/04 08:00</td> <td>&l

各位好,飞越者

我有以下代码:

    <table class="table">
        <tbody>
            <tr>
                <td><a href="#">New thing</a></td>
                <td>2017/06/04 08:00</td>
                <td><a href="#">One Thing</a><span>Another thing</span></td>
                <td class="random">R</td>
                <td><a href="#">12-11      </a></td>
            </tr>
            <tr>
                <td><a href="#">New thing</a></td>
                <td>2017/06/04 08:00</td>
                <td><a href="#">One Thing</a><span>Another thing</span></td>
                <td class="random">R</td>
                <td><a href="#">22-23      </a></td>
            </tr>
        </tbody>
    </table>

2017/06/04 08:00
还有一件事
R
2017/06/04 08:00
还有一件事
R
在结果中,我想使用jQuery获得上一个表TD中的数字之和,并将其显示到新的TD中。类似于以下代码:

<table class="table">
    <tbody>
        <tr>
            <td><a href="#">New thing</a></td>
            <td>2017/06/04 08:00</td>
            <td><a href="#">One Thing</a><span>Another thing</span></td>
            <td class="random">R</td>
            <td><a href="#">12-11      </a></td>
            <td>[ 23 ]</td>
        </tr>
        <tr>
            <td><a href="#">New thing</a></td>
            <td>2017/06/04 08:00</td>
            <td><a href="#">One Thing</a><span>Another thing</span></td>
            <td class="random">R</td>
            <td><a href="#">22-23      </a></td>
            <td>[ 45 ]</td>
        </tr>
    </tbody>
</table>

2017/06/04 08:00
还有一件事
R
[ 23 ]
2017/06/04 08:00
还有一件事
R
[ 45 ]
先谢谢你

  • 使用
    .each()
    迭代所有
    tr
  • 使用
    .text()
    获取文本
  • 使用
    .append()
    tr
  • 根据需要使用
    parseInt()
    parseFloat()
    Number()
  • //迭代表中的所有tr
    $('.table tr')。每个(函数(){
    //使用此上下文指向每个tr使用.last()获取最后一个td。
    //使用.text()获取其文本
    var tdval=$(this.find('td').last().text();
    //使用split并使用索引0获取第一个值
    var first=parseInt(tdval.split('-')[0])
    //使用split并使用索引1获取第二个值
    var second=parseInt(tdval.split('-')[1])
    //使用append将td追加到显示两个数字之和的位置。
    //append将把td放在最后
    $(this.append(“+(第一次+第二次)+”)
    })
    
    2017/06/04 08:00
    还有一件事
    R
    2017/06/04 08:00
    还有一件事
    R
    
  • 使用
    .each()
    迭代所有
    tr
  • 使用
    .text()
    获取文本
  • 使用
    .append()
    tr
  • 根据需要使用
    parseInt()
    parseFloat()
    Number()
  • //迭代表中的所有tr
    $('.table tr')。每个(函数(){
    //使用此上下文指向每个tr使用.last()获取最后一个td。
    //使用.text()获取其文本
    var tdval=$(this.find('td').last().text();
    //使用split并使用索引0获取第一个值
    var first=parseInt(tdval.split('-')[0])
    //使用split并使用索引1获取第二个值
    var second=parseInt(tdval.split('-')[1])
    //使用append将td追加到显示两个数字之和的位置。
    //append将把td放在最后
    $(this.append(“+(第一次+第二次)+”)
    })
    
    2017/06/04 08:00
    还有一件事
    R
    2017/06/04 08:00
    还有一件事
    R
    
  • 查找最后的
    子项('td:last')
  • 使用
    split(-)
  • 并用于将字符串转换为数字
  • $('table tr')。每个(函数(){
    var a=$(this.children('td:last').text().trim().split('-'))
    $(this).append(“”+(parseFloat(a[0])+parseFloat(a[1]))+“”)
    })
    表格,tr,td{
    边框:1px实心;
    }
    
    2017/06/04 08:00
    还有一件事
    R
    2017/06/04 08:00
    还有一件事
    R
    
  • 查找最后的
    子项('td:last')
  • 使用
    split(-)
  • 并用于将字符串转换为数字
  • $('table tr')。每个(函数(){
    var a=$(this.children('td:last').text().trim().split('-'))
    $(this).append(“”+(parseFloat(a[0])+parseFloat(a[1]))+“”)
    })
    表格,tr,td{
    边框:1px实心;
    }
    
    2017/06/04 08:00
    还有一件事
    R
    2017/06/04 08:00
    还有一件事
    R
    
    通过使用Vanilla JavaScript,可以通过以下3个步骤实现这一简单方法:

    // 1.Get last td element from each tr element
    var trsCollection = document.getElementsByTagName("tr");
    var lastTd = [];
    var tdSum = [];
    var trs = Array.from(trsCollection)
    trs.forEach(function(tr){
       var tds = tr.getElementsByTagName("td");
       lastTd.push(tds[tds.length-1]);
    });
    
    // 2.Calculate the sum of each last td element
    lastTd.forEach(function(ltd){
       var tdNumbers = ltd.textContent.trim().split("-");
       var sum = 0;
           tdNumbers.forEach(function(num){
              sum = sum + Number(num);
           });
       tdSum.push(sum);    
    });
    
    // 3.Add new td element to each tr parent 
    for (var i = 0; i < tdSum.length; i++) {
        var newTd = document.createElement("td");
        newTd.append(tdSum[i]);
        trs[i].append(newTd);
    };
    
    //1.从每个tr元素中获取最后一个td元素
    var trscolection=document.getElementsByTagName(“tr”);
    var lastTd=[];
    var tdSum=[];
    var trs=Array.from(trsCollection)
    trs.forEach(功能(tr){
    var tds=tr.getElementsByTagName(“td”);
    最后的推送时间(tds[tds.length-1]);
    });
    //2.计算最后每个td元素的总和
    最后一次会议(功能(有限公司){
    var tdNumbers=ltd.textContent.trim().split(“-”);
    var总和=0;
    tdNumbers.forEach(函数(num){
    总和=总和+数字(num);
    });
    推送(sum);
    });
    //3.向每个tr父级添加新的td元素
    对于(变量i=0;i

    我希望这将有助于解决您的问题。

    使用Vanilla JavaScript可以通过以下三个步骤以这种简单的方式完成:

    // 1.Get last td element from each tr element
    var trsCollection = document.getElementsByTagName("tr");
    var lastTd = [];
    var tdSum = [];
    var trs = Array.from(trsCollection)
    trs.forEach(function(tr){
       var tds = tr.getElementsByTagName("td");
       lastTd.push(tds[tds.length-1]);
    });
    
    // 2.Calculate the sum of each last td element
    lastTd.forEach(function(ltd){
       var tdNumbers = ltd.textContent.trim().split("-");
       var sum = 0;
           tdNumbers.forEach(function(num){
              sum = sum + Number(num);
           });
       tdSum.push(sum);    
    });
    
    // 3.Add new td element to each tr parent 
    for (var i = 0; i < tdSum.length; i++) {
        var newTd = document.createElement("td");
        newTd.append(tdSum[i]);
        trs[i].append(newTd);
    };
    
    $(document).ready(function(){
        var a=$('tr td:last-child');
        for(var i=0;i<a.length;i++){
    var newElement = a[i].innerText.split('-').reduce(function(prev,curr){
    return parseInt(prev) + parseInt(curr);
    });
    
    a[i].after("<td>"+newElement+"</td>");
    }
    });
    
    //1.从每个tr元素中获取最后一个td元素
    var trscolection=document.getElementsByTagName(“tr”);
    var lastTd=[];
    var tdSum=[];
    var trs=Array.from(trsCollection)
    trs.forEach(功能(tr){
    var tds=tr.getElementsByTagName(“td”);
    最后的推送时间(tds[tds.length-1]);
    });
    //2.计算最后每个td元素的总和
    最后一次会议(功能(有限公司){
    var tdNumbers=ltd.textContent.trim().split(“-”);
    var总和=0;
    tdNumbers.forEach(函数(num){
    总和=总和+数字(num);
    });
    推送(sum);