1

这是更大任务的一部分。为什么会出现问题Nan以及如何解决?<input>该表是从elemenatymi 表的几个池中添加的元素。所有代码都汇总在 size 表中k / d

为什么会出现问题 Nan 以及如何解决?

function licz(tableID){
 var table = document.getElementById(tableID);
 var k, d, s=0, temp;
 var i = table.rows.length;
      for(k=1; k<=i; k++){
          for(d=0; d<2; d++){
temp = parseFloat(document.getElementById(tableID).rows[k].cells[d].innerHTML);
alert(temp);
s=s+temp;
          }
document.getElementById(tableID).rows[k].cells[d].innerHTML = s;
              
     } 
}
<form name="roz" action="">
<table id="tyg" class="product_values" style="width: 20%" border=1>
<tr>
  <td> Pon </td>
  <td>  Wt </td>
  <td> Sum </td>
</tr><tr>
<td> <input type="number" name="inp_a" ></td>
  <td> 4 </td> 
  <td></td>        
</table>
</form>
<button onclick="licz('tyg')">go</button>

4

1 回答 1

1

这不是从子元素中获取价值的正确方法,您应该这样做:

JavaScript:

  function licz(tableID){
     var table = document.getElementById(tableID);
               var k, d, temp;
               var i = table.rows.length;

               for (k = 1; k <= i; k++) {
                   for (d = 0; d < 2; d++) {
                       if (d == 0) {
                           temp = parseFloat(document.getElementById(tableID).rows[k].cells[d].childNodes[1].value);
                       }
                       if (d == 1) {
                           temp = temp + parseFloat(document.getElementById(tableID).rows[k].cells[d].innerHTML);
                       }
                   }
                   document.getElementById(tableID).rows[k].cells[d].innerHTML = temp;
                   document.getElementById('num').v
               }
           }

HTML:

        <table id="tyg" class="product_values" style="width: 20%" border=1>
        <tr>
            <td> Pon </td>
            <td>  Wt </td>
            <td> Sum </td>
        </tr>
        <tr>
            <td> <input id = 'num' type="number" name="inp_a" ></td>
            <td> 4 </td> 
            <td></td>
        </tr>
    </table>

嗯……这是个好问题。您应该阅读 DOM 以了解更多信息。

于 2015-07-05T23:46:00.950 回答