我修改了好多次都不成功,不知道怎么动态的计算合计,
请大家帮帮忙啊。
<style>
body{margin:20px auto;text-align:center;}
</style>
<script>;
function bbb(m){
  var title = document.getElementById(m);
  var tr = document.createElement("tr");
  tr = document.getElementById("tab").getElementsByTagName("tbody")[0].insertBefore(tr,title);
  //添加删除项
var td = document.createElement("td");
tr.appendChild(td);
var  input=document.createElement("input");
td.name = 'lp[]';
input.setAttribute("type","checkbox");
td.appendChild(input);
    //添加单价项
    var td = document.createElement("td");
    tr.appendChild(td);
    var input = document.createElement("input");
    td.appendChild(input);
    input.size=8;
    input.name = 'lp[unit][]';
    input.setAttribute("type","text");
    //添加数量项
    var td = document.createElement("td");
    tr.appendChild(td);
    var input = document.createElement("input");
    td.appendChild(input);
    input.size=10;
    input.name = 'lp[up][]';
    input.setAttribute("type","text");
    //添加价格项
    var td = document.createElement("td");
    tr.appendChild(td);
    var input = document.createElement("input");
    td.appendChild(input);
    input.size=15;
    input.name = "lp[amount][]";
    input.setAttribute("type","text");
}
function remove(){
var tab = document.getElementById("tab")
var tr = tab.getElementsByTagName("tr");
for(var i=0 ; i  < tr.length ; i++){
var input = tr[i].getElementsByTagName("input");
for(var j=0 ;j <input.length;j++){
if(input[j].type == "checkbox" && input[j].checked == true)
document.getElementById("tab").getElementsByTagName("tbody")[0].removeChild(tr[i]);
}
}
}
</script>
<body>
<table border="1" id="tab">
<tr class="pa" >
   <td width="20"> </td>
      <td width="65" align="center">单价 </td>
   <td width="80" align="center">数量 </td>
   <td width="130" align="center">合计 </td>
     </tr>
     <tr>
   <td> <input type="checkbox" name="lp[]"/> </td>
       <td> <input type="text" size="8" name="lp[unit][]" value="20" /> </td>
       <td> <input type="text" size="10" name="lp[qty][]" value="10"/> </td>
       <td> <input type="text" size="15" name="lp[amount][]" /> </td>
     </tr>
     <tr id="chfw">
   <td colspan="2"> <input type="button" value="增加" onClick="bbb('chfw');"/>&nbsp; <input type="button" value="删除" onClick="remove()"/> </td>
       <td align="right" class="sub_total">总合计 </td>
       <td> <input type="text" size="15" name="lp_subtotal[]" /> </td>
     </tr>
</table>
</body>
</html>

解决方案 »

  1.   


    <style> 
    body{margin:20px auto;text-align:center;} 
    </style> 
    <script>; 
    function bbb(m){ 
      var title = document.getElementById(m); 
      var tr = document.createElement("tr"); 
      tr = document.getElementById("tab").getElementsByTagName("tbody")[0].insertBefore(tr,title); 
      //添加
    var td = document.createElement("td"); 
    tr.appendChild(td); 
    var  input=document.createElement("input"); 
    td.name = 'lp[]'; 
    input.setAttribute("type","checkbox"); 
    input.attachEvent("onclick",Total);
    td.appendChild(input); 
        //添加
        var td = document.createElement("td"); 
        tr.appendChild(td); 
        var input = document.createElement("input"); 
        td.appendChild(input); 
        input.size=8; 
        input.name = 'lp[unit][]'; 
        input.setAttribute("type","text"); 
        //添加数量
        var td = document.createElement("td"); 
        tr.appendChild(td); 
        var input = document.createElement("input"); 
        td.appendChild(input); 
        input.size=10; 
        input.name = 'lp[up][]'; 
        input.setAttribute("type","text"); 
        //添加价格
        var td = document.createElement("td"); 
        tr.appendChild(td); 
        var input = document.createElement("input"); 
        td.appendChild(input); 
        input.size=15; 
        input.name = "lp[amount][]"; 
        input.setAttribute("type","text"); 

    function remove(){ 
    var tab = document.getElementById("tab") 
    var tr = tab.getElementsByTagName("tr"); 
    for(var i=0 ; i< tr.length ; i++){ 
    var input = tr[i].getElementsByTagName("input"); 
    for(var j=0 ;j<input.length;j++){ 
    if(input[j].type == "checkbox" && input[j].checked == true) 
    document.getElementById("tab").getElementsByTagName("tbody")[0].removeChild(tr[i]); 



    var sum = 0;
    function Total(){
    var obj =event.srcElement;

    var sum1 = obj.parentNode.nextSibling.childNodes[0].value;
    var sum2 = obj.parentNode.nextSibling.nextSibling.childNodes[0].value;
        obj.parentNode.nextSibling.nextSibling.nextSibling.childNodes[0].value= parseFloat(sum1)+parseFloat(sum2);
    var oName = document.getElementsByName('lp[amount][]');
    sum += parseFloat(obj.parentNode.nextSibling.nextSibling.nextSibling.childNodes[0].value);
    document.getElementsByName('lp_subtotal[]')[0].value= sum;}
    </script> 
    <body> 
    <table border="1" id="tab"> 
    <tr class="pa" > 
        <td width="20">  </td> 
           <td width="65" align="center">jia ge  </td> 
        <td width="80" align="center">shu liang  </td> 
        <td width="130" align="center">he ji  </td> 
          </tr> 
          <tr> 
        <td>  <input type="checkbox" name="lp[]" onclick="Total()"/>  </td> 
            <td>  <input type="text" size="8" name="lp[unit][]" value="20" />  </td> 
            <td>  <input type="text" size="10" name="lp[qty][]" value="10"/>  </td> 
            <td>  <input type="text" size="15" name="lp[amount][]" value=""/>  </td> 
          </tr> 
          <tr id="chfw"> 
        <td colspan="2">  <input type="button" value="add" onClick="bbb('chfw');"/>&nbsp;  <input type="button" value="shan chu" onClick="remove()"/>  </td> 
            <td align="right" class="sub_total">total  </td> 
            <td>  <input type="text" size="15" name="lp_subtotal[]" />  </td> 
          </tr> 
    </table> 
    </body> 
    </html> 
      

  2.   

    加和减的都行,帖上代码
    <style> 
    body{margin:20px auto;text-align:center;} 
    </style> 
    <script>; 
    function bbb(m){ 
      var title = document.getElementById(m); 
      var tr = document.createElement("tr"); 
      tr = document.getElementById("tab").getElementsByTagName("tbody")[0].insertBefore(tr,title); 
      //添加删除项 
    var td = document.createElement("td"); 
    tr.appendChild(td); 
    var  input=document.createElement("input"); 
    td.name = 'lp[]'; 
    input.setAttribute("type","checkbox"); 
    input.attachEvent("onclick",Total);
    td.appendChild(input); 
        //添加单价项 
        var td = document.createElement("td"); 
        tr.appendChild(td); 
        var input = document.createElement("input"); 
        td.appendChild(input); 
        input.size=8; 
        input.name = 'lp[unit][]'; 
        input.setAttribute("type","text"); 
        //添加数量项 
        var td = document.createElement("td"); 
        tr.appendChild(td); 
        var input = document.createElement("input"); 
        td.appendChild(input); 
        input.size=10; 
        input.name = 'lp[up][]'; 
        input.setAttribute("type","text"); 
        //添加价格项 
        var td = document.createElement("td"); 
        tr.appendChild(td); 
        var input = document.createElement("input"); 
        td.appendChild(input); 
        input.size=15; 
        input.name = "lp[amount][]"; 
        input.setAttribute("type","text"); 

    function remove(){ 
    var tab = document.getElementById("tab") 
    var tr = tab.getElementsByTagName("tr"); 
    for(var i=0 ; i   < tr.length ; i++){ 
    var input = tr[i].getElementsByTagName("input"); 
    for(var j=0 ;j  <input.length;j++){ 
    if(input[j].type == "checkbox" && input[j].checked == true) 
    document.getElementById("tab").getElementsByTagName("tbody")[0].removeChild(tr[i]); 



    var sum = 0;
    function Total(){    var obj =event.srcElement;
    var sum1 = obj.parentNode.nextSibling.childNodes[0].value;
    var sum2 = obj.parentNode.nextSibling.nextSibling.childNodes[0].value;
        if(obj.checked)
    { obj.parentNode.nextSibling.nextSibling.nextSibling.childNodes[0].value= parseFloat(sum1)+parseFloat(sum2);
    sum += parseFloat(obj.parentNode.nextSibling.nextSibling.nextSibling.childNodes[0].value);
    document.getElementsByName('lp_subtotal[]')[0].value= sum;
    }
    else
    {
     var tempValue = obj.parentNode.nextSibling.nextSibling.nextSibling.childNodes[0].value;
    obj.parentNode.nextSibling.nextSibling.nextSibling.childNodes[0].value="";
    sum -= parseFloat(tempValue);
    document.getElementsByName('lp_subtotal[]')[0].value= sum;
    }
    }
    </script> 
    <body> 
    <table border="1" id="tab"> 
    <tr class="pa" > 
        <td width="20">  </td> 
           <td width="65" align="center">单价  </td> 
        <td width="80" align="center">数量  </td> 
        <td width="130" align="center">合计  </td> 
          </tr> 
          <tr> 
        <td>  <input type="checkbox" name="lp[]"  onclick="Total()"/>  </td> 
            <td>  <input type="text" size="8" name="lp[unit][]" value="20" />  </td> 
            <td>  <input type="text" size="10" name="lp[qty][]" value="10"/>  </td> 
            <td>  <input type="text" size="15" name="lp[amount][]" />  </td> 
          </tr> 
          <tr id="chfw"> 
        <td colspan="2">  <input type="button" value="增加" onClick="bbb('chfw');"/>&nbsp;  <input type="button" value="删除" onClick="remove()"/>  </td> 
            <td align="right" class="sub_total">总合计  </td> 
            <td>  <input type="text" size="15" name="lp_subtotal[]" />  </td> 
          </tr> 
    </table> 
    </body> 
    </html>