<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style type="text/css">
<!--
.STYLE2 {
font-size: 24px;
color: #999999;
}
-->
</style>
<script type="text/javascript">  
function myDelete(){
var oTable = document.getElementById("member");
//删除该行
this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode);
}
function myupdate(){
var oTable = document.getElementById("member");
e   =   event.srcElement   
  while(e.tagName   !="TR")   
  e=e.parentElement   
  e.cells[1].innerHTML   +="*"   
}
window.onload=function(){
var oTable = document.getElementById("member");
var oTd;
//动态添加delete链接
for(var i=1;i<oTable.rows.length;i++){
oTd = oTable.rows[i].insertCell(3);
oTd.innerHTML = "<a href='#'>delete</a>";
oTd.firstChild.onclick = myDelete; //添加删除事件
oTd = oTable.rows[i].insertCell(4);
oTd.innerHTML = "<a href='#'>修改</a>";
oTd.firstChild.onclick = myupdate;
}
}
 </script>
  <script> 
 function selectit(){ 
//设置变量form的值为name等于select的表单 
 var form=document.select 
//取得触发事件的按钮的name属性值 
var action=event.srcElement.name 
   for (var i=0;i<form.elements.length;i++){//遍历表单项 
//将当前表单项form.elements[i]对象简写为e 
      var e = form.elements[i] 
//如果当前表单项的name属性值为iTo, 
//执行下一行代码。限定脚本处理的表单项范围。 
      if (e.name == "iTo") 
/*如果单击事件发生在name为selectall的按钮上,就将当前表单项的checked属性设为true(即选中),否则设置为当前设置的相反值(反选)*/ 
         e.checked =(action=="selectall")?(form.selectall.checked):(!e.checked)  
      } 
 } 
 </script> 
 <script>  
function delall(){
        
 var iTo = document.getElementsByName("iTo");
   for (var i=0;i<iTo.length;i++){
  if(iTo[i].checked){ //判断复选框是否选中
       
           iTo[i].parentNode.parentNode.parentNode.parentNode.removeChild(iTo[i].parentNode.parentNode.parentNode);//选中就删除该行
   i--;
      }
   }  
}
 </script> 
</head>
<body>
<div align="center"><span class="STYLE2">文章列表</span></div>
<form id="form1" name="select" method="post" action="">
<table width="540" height="270" border="1" align="center" bordercolor="#990099"id="member">
  
  <tr>
    <td width="71" height="32">
      <div align="center">
        <input type="checkbox" name="selectall" value="checkbox" onclick="selectit()"/>全选
        </div>
      </td>
    <td width="98"><div align="center">序号</div></td>
    <td width="123"><div align="center">文章名</div></td>
    <td width="230"><div align="center">操 作1</div></td>
<td width="230"><div align="center">操 作2</div></td>
  </tr>
  <tr>
    <td><div align="center">
        <INPUT type="checkbox" name="iTo" value="1">1 
    </div></td>
    <td><div align="center">1</div></td>
    <td><div align="center">文章1</div></td>
  </tr>
  <tr>
    <td><div align="center">
        <INPUT type="checkbox" name="iTo" value="2">2 
    </div></td>
    <td><div align="center">2</div></td>
    <td><div align="center">文章2</div></td>
  </tr>
  <tr>
    <td><div align="center">
        <INPUT type="checkbox" name="iTo" value="3">3 
    </div></td>
    <td><div align="center">3</div></td>
    <td><div align="center">文章3</div></td>
  </tr>
  <tr>
    <td><div align="center">
        <INPUT type="checkbox" name="iTo" value="4">4 
    </div></td>
    <td><div align="center">4</div></td>
    <td><div align="center">文章4</div></td>
  </tr>
</table>
<p><a href='#'onclick="delall(this)">删除所选</a></p>
</form>
 <div align="left"></div>
</body>
</html>

解决方案 »

  1.   

    错了,刚刚只测试了删除,修改的问题出在
    e  =  event.srcElement
    没有仔细看你的代码是怎么写的,主要问题有两个:
    1、IE中获取当前事件对象是windows.event,而在FF中,是不存在window.event的,他是把事件对象当作
       事件处理函数的唯一参数传递进去的,即arguments[0],你也可以在定义事件处理函数时指定一个名称:
    function eventHandle(oEvent){/*在这里面oEvent就是指当前事件对象*/}。
    2、获取当前事件目标在IE和FF里也是不一样的,假设现在已经获取到了正确的事件对象,在FF中应该用
       为oEvent.target而不是oEvent.srcElement
      

  2.   

    ???
    删除所选和修改都好使吗?
    我的是FirefoxChinaEdition_2009.7.exe也不知道是几点几的、、
    ~~~~(>_<)~~~~ 
    咋搞的、郁闷死了、、
      

  3.   

    刚刚看到了关键问题所在:for(var i=1;i <oTable.rows.length;i++){ 
    oTd = oTable.rows[i].insertCell(3); 
    oTd.innerHTML = " <a href='#'>delete </a>"; 
    oTd.firstChild.onclick = myDelete; //添加删除事件 
    oTd = oTable.rows[i].insertCell(4); 
    oTd.innerHTML = " <a href='#'>修改 </a>"; 
    oTd.firstChild.onclick = myupdate; 
    } 另外,用parentNode,不要用parentElement
    FF在建立DOM文档的时候会把标签之间的空格解析成一个textNode,oTd.firstChild指向的是一个textNode而不是你添加的链接,有两个方法可以解决,一种是oTd.innerHTML = " <a href='#'>修改 </a>"; 中字符串前面的空格去掉,第二种方法是用document.createElement动态创建链接,然后appendChild到oTd中去,下面是用第二种方法改好的代码:
    function myDelete(){ 
        var oTable = document.getElementById("member"); 
        //删除该行 
        this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode); 

    function myupdate(oEvent){
        var oTable = document.getElementById("member"); 
        e = oEvent || window.event;
        e =  e.srcElement || e.target;
        while(e.tagName != "TR"){
            e=e.parentNode;
        }
        e.cells[1].innerHTML  +="*"  

    window.onload=function(){ 
        var oTable = document.getElementById("member"); 
        var oTd; 
        //动态添加delete链接 
        for(var i=1;i <oTable.rows.length;i++){ 
            oTd = oTable.rows[i].insertCell(3); 
            var a = document.createElement("a");
            a.href = "#";
            a.appendChild(document.createTextNode("删除"))
            a.onclick = myDelete;
            oTd.appendChild(a); 
            
            oTd = oTable.rows[i].insertCell(4); 
            a = document.createElement("a");
            a.href = "#";
            a.appendChild(document.createTextNode("修改"))
            a.onclick = myupdate;
            oTd.appendChild(a); 
        } 
    }
      

  4.   

    恩,这样对、解决了。
    非常感谢!!
    上面的全选在FF下的问题也解决了。
    这是在FF下的全选复选框的实现、
    <script language="javascript"> 
    function selectIt(action){ 
    var testform=document.getElementById("form1"); 
    for(var i=0 ;i<testform.elements.length;i++){ 
    if(testform.elements[i].type=="checkbox"){ 
    e=testform.elements[i]; 
    e.checked=(action=="selectall")?1:(!e.checked); 



    </script>