qq_42285529 2019-10-17 10:32 采纳率: 0%
浏览 239
已采纳

请问如何把单独把每个input取到值 然后加起来放到总分处?

人员较多所以 input是循环出来的 不知道怎么能通过name单独拿到对应每个人的3个分数进行相加。
图片说明

图片说明

function getSunyw(ind){
    var score1 = document.getElementById("table_test").getElementsByTagName("tr")[ind].getElementsByTagName("input")[0].value;
    document.getElementById("table_test").getElementsByTagName("tr")[ind].getElementsByTagName("td")[4].getElementsByTagName("span")[0].innerText = score1 +"分";
    console.log(score1);
}

function getSungz(ind){
var score2 = document.getElementById("table_test").getElementsByTagName("tr")[ind].getElementsByTagName("input")[1].value;
document.getElementById("table_test").getElementsByTagName("tr")[ind].getElementsByTagName("td")[4].getElementsByTagName("span")[0].innerText =score2 +"分";
console.log(score2);
}

function getSuntd(ind){
    var score3 = document.getElementById("table_test").getElementsByTagName("tr")[ind].getElementsByTagName("input")[2].value;
    document.getElementById("table_test").getElementsByTagName("tr")[ind].getElementsByTagName("td")[4].getElementsByTagName("span")[0].innerText = score3 +"分";
    console.log(score3);
}
<tr>
      <td>测试1</td>
      <td><input type="text" placeholder="请输入业务能力分" name="yw[]" onchange="getSunyw(1)"></td>
      <td><input type="text" placeholder="请输入工作能力分" name="gz[]" onchange="getSungz(1)"></td>
      <td><input type="text" placeholder="请输入工作态度分" name="td[]" onchange="getSuntd(1)"></td>
      <td><span></span></td>
      <td><input type="text" placeholder="备注"></td>
</tr>

<tr>
      <td>测试2</td>
      <td><input type="text" placeholder="请输入业务能力分" name="yw[]" onchange="getSunyw(2)"></td>
       <td><input type="text" placeholder="请输入工作能力分" name="gz[]" onchange="getSungz(2)"></td>
       <td><input type="text" placeholder="请输入工作态度分" name="td[]" onchange="getSuntd(2)"></td>
       <td><span></span></td>
       <td><input type="text" placeholder="备注"></td>
</tr>
  • 写回答

4条回答

  • 拾年丶不久 2019-10-17 11:16
    关注

    给单项input添加onchange事件,用jquery的话就$(this).parents("tr").find("input[name='ye[]']").val()这样逐次获取三个输入框的值并相加,需要的话也可以parseInt()一下,
    最后$(this).parents("tr").find("span").text(sum +"分")就能实现了,原生js的话找节点费劲些,用类似document.getElementsByTagName(name)[ind].value方法获取,建议加个ID,会省不少事,最后document...(合分的那块).innerText=sum + "分"
    HTML:

    <table id ="table">
        <tr><th>这行是表头</th></tr>
            <tr><td><input onchange="getSun(1);">这行是分值</td></tr>
                <tr><td>这行是分值</td></tr>
    </table>
    

    JS:

    function getSumyw(ind){
        var score1 = document.getElementById("table_test").getElementsByTagName("tr")[ind].getElementsByTagName("input")[0].value;
             var score2 = document.getElementById("table_test").getElementsByTagName("tr")[ind].getElementsByTagName("input")[1].value;
             var score3 = document.getElementById("table_test").getElementsByTagName("tr")[ind].getElementsByTagName("input")[2].value;
            (!score1)?0:score1;
            (!score2)?0:score2;
            (!score3)?0:score3;
            var sum = score1 + score2 +score3;
        document.getElementById("table_test").getElementsByTagName("tr")[ind].getElementsByTagName("td")[4].getElementsByTagName("span")[0].innerText = sum +"分";
            console.log(score1);
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题