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 聚类分析或者python进行数据分析
  • ¥15 如何用visual studio code实现html页面
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?