下面的代码在IE和遨游上都好用,但在fireFox上就没反映.
那位高手给指正一下,先谢谢了.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'deleteTheRowWhichFocusOn.jsp' starting page</title>
    
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->  </head>
  
  <body>
  
  
  
  <table   border=1   id="tbl" align="center">   
    
  </table>   
  <!-- 这是两个按钮作用分别是添加和删除 -->
  <table align="center">
  <tr>
  <td>  <input   type="button"   value="添加一条新的货物记录"   onclick="addRow()"> </td>
  <td>  <input   type="button"   value="删除一条新的货物记录"   onclick="deleteRow()"></td>
  <td>  <input   type="button"   value="保存货物记录"   onclick="save()"></td>
  </tr>
  </table>
  </body>
  <script language="javascript">
<!--
  var   tb1=document.getElementById('tbl')   
  //function   save(o){
  //var   tb1=document.getElementById('tbl');   //for(var i=0;i<tb1.rows.length;i++){
  // var message = "";
  // for(var j=0;j<4;j++){
   //   message += tb1.rows[i].cells[j].childNodes[0].value;   // } 
  // alert(message);
  // }
 // return;
 // }
 
 function save(o){
    var tb1=document.getElementById('tbl');
    var l = tb1.rows.length;
    for(var i = 0;i < l;i++){ 
        var message = "";
       
        for(var j = 0;j < 4;j++){
            message += tb1.rows[i].cells[j].childNodes[0].value;
        }
        alert(message);
    }
    return;
}
 
  function   del(o){   
  var   tb1=document.getElementById('tbl')   
  if(tbl.rows.length   ==1) {  
  alert("您至少应该有一条货物记录");
  return
  } 
  tb1.deleteRow(o.parentNode.parentNode.rowIndex)   
  }  function   addRow(){   
  
  <!-- 定义一个newTr对象,他是tb1的新差入的行,并有一个newTd对象在其内部 -->  
  var   text="<input   type='text' id ='f' name='f'>";
  var   cc="<input   type='button'   value='删除此条货物记录'   name='B'   onclick='del(this)'>";
  <!-- 添加单元格 -->     
   var tbody=tb1.childNodes[0];
tbody.appendChild(tbody);
  var newTr,newTd;
  var i,colnum=5;
  
  newTr=document.createElement("tr");
  tbody.appendChild(newTr);
  
  for(i=0;i<colnum;i++)
{
newTd=document.createElement("TD");
newTr.appendChild(newTd);
newTd.innerHTML=text;
if(i==4){
 newTd.innerHTML=cc;  
}  
}
  }   
  <!-- 删除行 -->  
  function   deleteRow(){ 
  <!-- 如果此时的tb1对象的rows长度不为0,就执行table对象的一个删除末尾行的方法,此行的行号为last=length-1 -->  
  if(tbl.rows.length   ==1) {  
  alert("您至少应该有一条货物记录");
  return
  }   
  tbl.deleteRow(tbl.rows.length   -   1)   
  }//-->
</script>
</html>

解决方案 »

  1.   

    估计用到了 BOM 对象,而这正是浏览器差异所在,建议使用纯 DOM 操作!如果必须使用 BOM 时,对于不同浏览器就要查手册了!注:俺近期只用 IE。大家帮着看看,顶一下!
      

  2.   

    因为 Maxthon 用的是IE的内核.
      

  3.   

    FF 与 IE 还是有很大差别的,比如加td的时候你应该使用 tr.insertCell(0) 这样的做法
    比如取子节点的进修 childNodes[0] 在FF与IE里它的解释是不相同的。
      

  4.   

    谢谢各位了,
    看了梅花雪的解释,我知道问题了.
    CSDN里的兄弟真是热心.呵呵!