<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>无标题文档</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language="javascript">/*
//拖动部分
*/function swap(a,b){
  var s=b.innerHTML;
  b.innerHTML=a.innerHTML;
  a.innerHTML=s;
}function getCell() {
var oCell = event.srcElement;
if (oCell.tagName && oCell.tagName.toUpperCase() == "TD")
  return oCell;
  
return null;
}var bToggle = false;
var oCellCur = null;
var oCellNew = null;
document.onmousedown = function () {
oCellCur = getCell();
if (!oCellCur)
  return;
  
bToggle = true;
oCellCur.setCapture();
}document.onmousemove = function () {
if (bToggle)
{
document.body.style.cursor = "move";
}
else
{
document.body.style.cursor = "default";
}
}document.onmouseup = function () {
bToggle = false;
if (oCellCur)
  oCellCur.releaseCapture();

oCellNew = getCell();
if (!oCellNew || !oCellCur || oCellNew == oCellCur)
  return;

swap(oCellCur, oCellNew);
}/*
//编辑部分
*/
function addRow(src){
//alert(src);
var newrow = src.insertRow(src.rows.length-1);
newrow.height=20;
var i=4;
while(i--)
{
var newcell = newrow.insertCell();
switch(i){
case 0: newcell.innerHTML= '<span onmouserover="this.style.textDecoration=\'underline\'" onclick="javascript:return delRow(this.parentElement.parentElement);" style="cursor:hand;">删除此行</span>';newcell.align='middle';break;
default: newcell.innerHTML=div1.innerHTML;break;
}
}

newrow.cells[0].children[0].focus();}
function delRow(src){
var tab=src.parentElement;
var i=tab.rows.length;
while(i--){
if(src==tab.rows[i]){
alert("是否删除"+ i + "行?");
tab.deleteRow(i);
}
}
}function nextRow(obj)
{ if(event.keyCode==13)
{
if(obj.cellIndex != 2)
{
event.keyCode = 9;
}
else
{
addRow(obj.parentElement.parentElement);
}
}
}
</script>
</head><body>
<table id="tb" width="100%"  border="1" align="center" cellpadding="1" style="border-collapse:collapse" bordercolor="#111111">
  <tr>
    <th scope="col" width="25%">奶类</th>
    <th scope="col" width="25%">数量</th>
    <th scope="col" width="25%">总重</th>
    <th scope="col" width="25%" align="center">操作</th>
  </tr>
  <tr id="blankRow" onClick="addRow(this.parentElement)">
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
<div id="div1" style="display:none "><input id="txt" type="text" style="width:95%;border:0px solid #90C4FF;" onkeydown="javascript:return nextRow(this.parentElement)"></div>
</body>
</html>

解决方案 »

  1.   

    <input type=button value=delRow onclick="mm(this)"> 放在新添加的行末按钮function searchObjByTagName(obj, tag)
    {
      while(obj!=null && typeof(obj.tagName) != "undefind")
      {
        if(obj.tagName == tag.toUpperCase()) return(obj);
        obj = obj.parentElement;
      }
      return null;
    }
    function mm(e){searchObjByTagName(e, "TR").removeNode(true);}
      

  2.   

    <table>
    <tr>
    <td onclick="this.parentNode.removeNode(true)">delete this row
    </td>
    </tr>
    <tr>
    <td onclick="this.parentNode.removeNode(true)">delete this row
    </td>
    </tr>
    </table>
      

  3.   

    这是一个以表格第三行为模板来添加插入表格行的程序。  
     
    ---------------------------------------------------------------  
     
    var  theRowOfTheDynamicTable=null;//用于存放表格要添加的行的样式。  
     
    function  add_row(the_table){    
               if(the_table==null)  
                           return;  
                 
               var  i=0;  
               var  the_row,the_cell;  
               var  row_index=-1;  
               if(theRowOfTheDynamicTable==null){  
                           theRowOfTheDynamicTable=new  Array();  
                           var  baseTr=the_table.rows[2];  
                           for(i=0;i<baseTr.cells.length;i++){  
                                       the_cell=baseTr.cells[i];  
                                       theRowOfTheDynamicTable[i]=the_cell.innerHTML;  
                           }  
               }  
               row_index=the_table.rows.length;  
               var  newrow=the_table.insertRow(row_index);  
               for(i=0;i<theRowOfTheDynamicTable.length;i++){  
                           the_cell=newrow.insertCell(i);  
                           the_cell.align="center";  
                           the_cell.innerHTML=theRowOfTheDynamicTable[i];  
               }  
    }  
     
    function  get_Element(the_ele,the_tag){  
               the_tag  =  the_tag.toLowerCase();  
               if(the_ele.tagName.toLowerCase()==the_tag)  
                           return  the_ele;  
               while(the_ele=the_ele.offsetParent){  
                           if(the_ele.tagName.toLowerCase()==the_tag)  
                                       return  the_ele;  
               }  
               return(null);  
    }  
     
    function  del_row(the_table){    
               var  the_cell,the_row;  
               var  i=0;  
           the_cell=get_Element(event.srcElement,"td");  
               if(the_cell==null)  return;  
     
               the_row=the_cell.parentElement.rowIndex;  
               the_table.deleteRow(the_row);  
    }  
     
    function  up_row(the_table){    
               var  the_cell,cur_row,up_row;  
               var  i=0;  
               the_cell=get_Element(event.srcElement,"td");  
               if(the_cell==null)  return;  
               if(the_table.rows.length<=1)  return;  
                 
               cur_row=the_cell.parentElement;  
               row_index=cur_row.rowIndex;  
               if(row_index<=0)  return;  
               up_row=the_table.insertRow(row_index-1);  
                 
               for(i=0;i<cur_row.cells.length;i++){  
                           the_cell=up_row.insertCell(i);  
                           the_cell.align="center";  
                           the_cell.innerHTML=cur_row.cells[i].innerHTML;  
               }  
               the_table.deleteRow(row_index+1);  
    }  
     
    function  down_row(the_table){    
               var  the_cell,cur_row,down_row;  
                 var  i=0;  
           the_cell=get_Element(event.srcElement,"td");  
               if(the_cell==null)  return;  
                 
               if(the_table.rows.length<=1)  return;  
                 
               cur_row=the_cell.parentElement;  
               row_index=cur_row.rowIndex;  
               if(row_index>=the_table.rows.length-1)  return;  
                 
               down_row=the_table.insertRow(row_index+2);  
                 
               for(i=0;i<cur_row.cells.length;i++){  
                           the_cell=down_row.insertCell(i);  
                           the_cell.align="center";  
                           the_cell.innerHTML=cur_row.cells[i].innerHTML;  
               }  
               the_table.deleteRow(row_index);  
    }  
     
    function  insert_row(the_table){    
               var  the_cell,the_row,temp,row_index,newrow;  
                 var  i=0;  
           the_cell=get_Element(event.srcElement,"td");  
               if(the_cell==null)  return;  
               if(the_table.rows.length<=0)  return;  
               the_row=the_cell.parentElement;  
               row_index=the_row.rowIndex;  
               newrow=the_table.insertRow(row_index);  
               for(i=0;i<the_row.cells.length;i++){  
                           the_cell=newrow.insertCell(i);  
                           the_cell.align="center";  
                           the_cell.innerHTML=the_row.cells[i].innerHTML;  
               }  
    }  
      

  4.   

    ttyp(愿赌服输) 的代码我看着眼熟啊, 不知道改成什么样了
    呵呵