执行<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
 </HEAD> <BODY>
 <script language="javascript">
 /*-----------------------------------------------------------------------------------------*\
 * 函数:          删除table行
 * 参数:          tableName -- table的ID
                 evt -- 固定event用于火狐
 * 创建人:        金雷。
 * 创建日期:      2006-07-24。
 * 最后修改日期:  2008-10-22。
\*-----------------------------------------------------------------------------------------*/
function DeleteTableRow(tableName,evt)
{
    try
    {
        evt = evt ? evt : (window.event ? window.event : null);//火狐:需要事件函数传递事件对象
        var sender   =   evt.srcElement ? evt.srcElement : evt.target; 
        var i;
        for (i=0; i<document.getElementById(tableName).rows.length; i++)
        {
            if (document.getElementById(tableName).rows[i].contains(sender)) break;
        }
        document.getElementById(tableName).deleteRow(i);
    }
    catch(exp)
    {
        alert("Function Name:DeleteTableRow\nError:"+ exp.message);
    }
} </script>
 <table cellspacing="0" cellpadding="0" width="100%" border="1" id="TableDelete">
<tbody>
<tr style="height: 20px;">
<td class="title" style="width: 105px;">
<span class="fs">test1</span>
</td> <td class="tline" style="width: 10px;">
asdfas
</td>
<td class="tline" align="right">
<INPUT onclick="DeleteTableRow('TableDelete',event);" type="button" value="删除">
</td>
</tr>
<tr style="height: 20px;">
<td class="title" style="width: 105px;">
<span class="fs">test2</span>
</td> <td class="tline" style="width: 10px;">
asdfas
</td>
<td class="tline" align="right">
<INPUT onclick="DeleteTableRow('TableDelete',event);" type="button" value="删除">
</td>
</tr>
<tr style="height: 20px;">
<td class="title" style="width: 105px;">
<span class="fs">test3</span>
</td> <td class="tline" style="width: 10px;">
asdfas
</td>
<td class="tline" align="right">
<INPUT onclick="DeleteTableRow('TableDelete',event);" type="button" value="删除">
</td>
</tr>
</tbody>
</table>
 </BODY>
</HTML>

解决方案 »

  1.   

    你把 for语句拿掉会出问题 ? for (i=0; i<document.getElementById(tableName).rows.length; i++)
            {
                if (document.getElementById(tableName).rows[i].contains(sender)) break;
            }
      

  2.   

    for 语句拿掉就不执行
    现在就希望怎样修改这函数参数不变的情况下让在火狐下他能够执行
      

  3.   


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
      <META NAME="Generator" CONTENT="EditPlus">
      <META NAME="Author" CONTENT="">
      <META NAME="Keywords" CONTENT="">
      <META NAME="Description" CONTENT="">
     </HEAD> <BODY>
     <script language="javascript">
     /*-----------------------------------------------------------------------------------------*\
     * 函数:          删除table行
     * 参数:          tableName -- table的ID
                     evt -- 固定event用于火狐
     * 创建人:        金雷。
     * 创建日期:      2006-07-24。
     * 最后修改日期:  2008-10-22。
    \*-----------------------------------------------------------------------------------------*/
    function DeleteTableRow(tableName,rowindex)
    {
        try
        {
            document.getElementById(tableName).deleteRow(rowindex);
        }
        catch(exp)
        {
            alert("Function Name:DeleteTableRow\nError:"+ exp.message);
        }
    } </script>
         <table cellspacing="0" cellpadding="0" width="100%" border="1" id="TableDelete">
            <tbody>
                <tr style="height: 20px;">
                    <td class="title" style="width: 105px;">
                        <span class="fs">test1</span>
                    </td>                <td class="tline" style="width: 10px;">
                        asdfas
                    </td>
                    <td class="tline" align="right">
                        <INPUT onclick="DeleteTableRow('TableDelete',this.parentNode.parentNode.rowIndex);" type="button" value="删除">
                    </td>
                </tr>
                <tr style="height: 20px;">
                    <td class="title" style="width: 105px;">
                        <span class="fs">test2</span>
                    </td>                <td class="tline" style="width: 10px;">
                        asdfas
                    </td>
                    <td class="tline" align="right">
                        <INPUT onclick="DeleteTableRow('TableDelete',this.parentNode.parentNode.rowIndex);" type="button" value="删除">
                    </td>
                </tr>
                <tr style="height: 20px;">
                    <td class="title" style="width: 105px;">
                        <span class="fs">test3</span>
                    </td>                <td class="tline" style="width: 10px;">
                        asdfas
                    </td>
                    <td class="tline" align="right">
                        <INPUT onclick="DeleteTableRow('TableDelete',this.parentNode.parentNode.rowIndex);" type="button" value="删除">
                    </td>
                </tr>
            </tbody>
        </table>
     </BODY>
    </HTML>
      

  4.   

    自己改好了
    但是还有一个问题缺点function DeleteTableRow(tableName,evt)
    {
        try
        {
            evt = evt ? evt : (window.event ? window.event : null);//火狐:需要事件函数传递事件对象
            var sender   =   evt.srcElement ? evt.srcElement : evt.target; 
            if(typeof(document.getElementById(tableName).rows[0].contains) != "undefined")
            {
                var i;
            for (i=0; i<document.getElementById(tableName).rows.length; i++)
            {
                if (document.getElementById(tableName).rows[i].contains(sender)) break;
            }
        document.getElementById(tableName).deleteRow(i);
    }
    else
    {
        document.getElementById(tableName).deleteRow(sender.parentNode.parentNode.rowIndex);//火狐找到input的父元素, 这里必须是在第二层里了,还是不够通用
    }
    }
    catch(exp)
    {
        alert("Function Name:DeleteTableRow\nError:"+ exp.message);
    }
    }
      

  5.   

    晕那for循环语句不是费的 你就删除就删除留else不就完了?跟我上面的方法意思一样