<%@ page contentType="text/html; charset=GBK" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>设定查询条件</title>
<script language="JavaScript" type="text/JavaScript">
//删除当前光标所在的表格行
function DropRow()
{
if (event.srcElement.parentElement.tagName.toUpperCase() == 'TR')
   {
    alert(event.srcElement.parentElement.rowIndex);
   }
}
//清空当前表格条件行
function CleanRow()
{
  var i;
  for(;;)
  {
   if((i=conditiontable.rows.length)>3)
   {
    conditiontable.deleteRow(i-1)}
  else
    break;
  }
}
//对表格增加一行并产生相应控件和值
function AddRow(selectSql)
{
//var oTbl = parent.frames.LR.document.body.all.tblList;
//var RowCount         = oTbl.rows.length;
var NewRow = conditiontable.insertRow(conditiontable.rows.length); var nc1 = NewRow.insertCell();
var nc2 = NewRow.insertCell();
var nc3 = NewRow.insertCell();
var nc4 = NewRow.insertCell();
var nc5 = NewRow.insertCell();
var nc6 = NewRow.insertCell(); var p1,p2,p3,p4,p5,p6,c; //htmlstr="<tr bgcolor="#FFFFCC">";
 p1=" <td><font color='#000000'><select name='zkh'><Option value='' selected>无</option><Option value='('>左括号</option></select></td>\n";
 p2=" <td><font color='#000000'><select name='tjl' id='tjl'>"+selectSql+"</select></font></td>\n";
 p3=" <td><font color='#000000'><select name='tjh' id='tjh'></select></font></td>\n";
 p4=" <td><font color='#000000'><input  name='tjz' type='text' id='tjz' size=50 value='?'></font></td>\n";
 p5=" <td><font color='#000000'><select name='ykh'><option value='' selected>无</option><option value=')'>右括号</option></select></font></td>\n";
 p6=" <td><font color='#000000'><select name='ljh'><option value='' selected>无</option><option value='and'>and</option><option value='or'>or</option></select></font></td>\n";
 //htmlstr+="</tr>"; nc1.innerHTML = p1;
nc2.innerHTML = p2;
nc3.innerHTML = p3;
nc4.innerHTML = p4;
nc5.innerHTML = p5;
nc6.innerHTML = p6; nc1.width = "11%";
nc2.width = "19%";
nc3.width = "10%";
nc4.width = "38%";
nc5.width = "11%";
nc6.width = "11%"; c="#FFFFCC";
NewRow.bgColor = c;
NewRow.noWrap = true;
NewRow.style.wordBreak = "break-all";
NewRow.height = 30;
NewRow.align = "left";
//nc8.align = "right";
//conditiontable.style.tableLayout = "fixed";
}
</script>
</head><body>
<label></label>
<form action="" method="post" enctype="multipart/form-data" name="condition" id="condition">
  <p>&nbsp;</p>
  <p>定制报表<font color="#000000">向导</font>&gt;&gt;设定查询条件 </p>
  <div id="Layer2" style="position:absolute; width:731px; height:15px; z-index:2; left: 10px; top: 65px;">
    <hr align="left" color="#99333">
  </div>  <table width="99%" border="1" cellpadding="3" cellspacing="0" id="conditiontable">
    <tr bgcolor="#006699">
      <td height="30" colspan="7"><font color="#CCCCCC" size="2">请设置报表查询条件,&quot;?&quot;代表绑定参数替代符</font></td>
    </tr>
    <%--<tr bgcolor="#FFFFCC"onmouseover="alert('这是' + (this.rowIndex + 1) + '行');">--%>
    <tr bgcolor="#FFFFCC">
      <td width="11%"><font color="#990033" size="2">括号</font></td>
      <td width="15%"><font color="#990033" size="2">条件列</font></td>
      <td width="9%"><font color="#990033" size="2">条件符</font></td>
      <td width="40%"><font color="#990033" size="2">条件值</font></td>
      <td width="11%"><font color="#990033" size="2">括号</font></td>
      <td width="7%"><font color="#990033" size="2">逻辑符</font></td>
      <td width="7%"><font color="#990033" size="2">删除</font></td>
    </tr>
    <tr bgcolor="#FFFFCC">
      <td width="11%" height="20"> <select name="zkh" id="zkh">
          <option value="" selected>无</option>
          <option value="(">左括号</option>
        </select> </td>
      <%--<%!String selectSql="";%>声明条件列语句构造变量--%>
      <td width="15%" height="20"><font color="#000000">
        <select name="tjl" id="tjl">
          <jsp:useBean id="conn" scope="page" class="tl_proj.InConn"/>
          <jsp:useBean id="Fun" scope="page" class="tl_proj.Function" />
          <%
        String sql="";
        String selectSql="";
        ResultSet result=null;
        sql="select i_workerid,i_workername from web_m_worker";
        result=conn.executeQuery(sql);
        while(result.next())
          {%>
          <option value=<%=result.getString(1)%>><%=Fun.getStr(result.getString(2))%></option>
          <%selectSql+="<option value="+result.getString(1)+">"+Fun.getStr(result.getString(2))+"</option>";%>
          <%}
         %>
          <%conn.closeDb();%>
        </select>
        </font></td>
      <td width="9%" height="20"><font color="#000000">
        <select name="tjh" id="tjh">
        </select>
        </font></td>
      <td width="40%" height="20"><font color="#000000">
        <input name="tjz" type="text" id="tjz" value="?" size="40" >
        </font></td>
      <td width="11%" height="20"><font color="#000000">
        <select name="ykh" id="ykh">
          <option value="" selected>无</option>
          <option value=")">右括号</option>
        </select>
        </font></td>
      <td width="7%" height="20"><font color="#000000">
        <select name="ljh" id="ljh">
          <option value="" selected>无</option>
          <option value="and">and</option>
          <option value="or">or</option>
        </select>
        </font></td>
        <script language="JavaScript" type="text/JavaScript">
         var row=0;
         row=conditiontable.rows.length;
        </script>
      <td width="7%"><input id="flag" name="flag" type="checkbox" value=row onclick="alert(this.value);"></td>
    </tr>
  </table>
  <p>
  <script language="JavaScript" type="text/JavaScript">
    var dd="";
    dd="<%=selectSql%>";
  </script>
    <input type="button" name="add"     value="增加条件" onclick=JavaScript:AddRow(dd);>
    <input type="button" name="forward" value="上一步">
    <input type="button" name="next"    value="下一步">
    <input type="button" name="delete"  value="删除条件" onclick="alert(event.srcElement.parentElement.rowIndex);">
    <input type="button" name="clean"   value="清空条件" onclick=JavaScript:CleanRow();>
  </p>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
</form>
</body>
</html>

解决方案 »

  1.   

    楼主,你把onclick="DropRow()"这个加到你的table标签里,alert出来的值是正确的。
    你直接去点删除按钮,当前的光标在不在table上,肯定是得不到啦
      

  2.   

    你点这个删除看看 :)
    <%@ page contentType="text/html; charset=GBK" language="java" import="java.sql.*" errorPage="" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>设定查询条件</title>
    <script language="JavaScript" type="text/JavaScript">
    //删除当前光标所在的表格行
    var rownum = "";
    function del()
    {
       if(rownum == "")
       {
          alert("请先点击你要删除的行数!");
      return;
       }
       if(rownum > 2)
         confirm("你真的要删除第 "+eval("rownum-1")+" 的数据?");
       else
         alert("这一行是不能删的噢:)");
    }function DropRow()
    {
    if (event.srcElement.parentElement.tagName.toUpperCase() == 'TR')
       {
         rownum = event.srcElement.parentElement.rowIndex;
       }
    }
    //清空当前表格条件行
    function CleanRow()
    {
      var i;
      for(;;)
      {
       if((i=conditiontable.rows.length)>3)
       {
        conditiontable.deleteRow(i-1)}
      else
        break;
      }
    }
    //对表格增加一行并产生相应控件和值
    function AddRow(selectSql)
    {
    //var oTbl = parent.frames.LR.document.body.all.tblList;
    //var RowCount         = oTbl.rows.length;
    var NewRow = conditiontable.insertRow(conditiontable.rows.length); var nc1 = NewRow.insertCell();
    var nc2 = NewRow.insertCell();
    var nc3 = NewRow.insertCell();
    var nc4 = NewRow.insertCell();
    var nc5 = NewRow.insertCell();
    var nc6 = NewRow.insertCell(); var p1,p2,p3,p4,p5,p6,c; //htmlstr="<tr bgcolor="#FFFFCC">";
     p1=" <td><font color='#000000'><select name='zkh'><Option value='' selected>无</option><Option value='('>左括号</option></select></td>\n";
     p2=" <td><font color='#000000'><select name='tjl' id='tjl'>"+selectSql+"</select></font></td>\n";
     p3=" <td><font color='#000000'><select name='tjh' id='tjh'></select></font></td>\n";
     p4=" <td><font color='#000000'><input  name='tjz' type='text' id='tjz' size=50 value='?'></font></td>\n";
     p5=" <td><font color='#000000'><select name='ykh'><option value='' selected>无</option><option value=')'>右括号</option></select></font></td>\n";
     p6=" <td><font color='#000000'><select name='ljh'><option value='' selected>无</option><option value='and'>and</option><option value='or'>or</option></select></font></td>\n";
     //htmlstr+="</tr>"; nc1.innerHTML = p1;
    nc2.innerHTML = p2;
    nc3.innerHTML = p3;
    nc4.innerHTML = p4;
    nc5.innerHTML = p5;
    nc6.innerHTML = p6; nc1.width = "11%";
    nc2.width = "19%";
    nc3.width = "10%";
    nc4.width = "38%";
    nc5.width = "11%";
    nc6.width = "11%"; c="#FFFFCC";
    NewRow.bgColor = c;
    NewRow.noWrap = true;
    NewRow.style.wordBreak = "break-all";
    NewRow.height = 30;
    NewRow.align = "left";
    //nc8.align = "right";
    //conditiontable.style.tableLayout = "fixed";
    }
    </script>
    </head><body>
    <label></label>
    <form action="" method="post" enctype="multipart/form-data" name="condition" id="condition">
      <p>&nbsp;</p>
      <p>定制报表<font color="#000000">向导</font>&gt;&gt;设定查询条件 </p>
      <div id="Layer2" style="position:absolute; width:731px; height:15px; z-index:2; left: 10px; top: 65px;">
        <hr align="left" color="#99333">
      </div>  <table width="99%" border="1" cellpadding="3" cellspacing="0" id="conditiontable" onclick="DropRow()">
        <tr bgcolor="#006699">
          <td height="30" colspan="7"><font color="#CCCCCC" size="2">请设置报表查询条件,&quot;?&quot;代表绑定参数替代符</font></td>
        </tr>
        <%--<tr bgcolor="#FFFFCC"onmouseover="alert('这是' + (this.rowIndex + 1) + '行');">--%>
        <tr bgcolor="#FFFFCC">
          <td width="11%"><font color="#990033" size="2">括号</font></td>
          <td width="15%"><font color="#990033" size="2">条件列</font></td>
          <td width="9%"><font color="#990033" size="2">条件符</font></td>
          <td width="40%"><font color="#990033" size="2">条件值</font></td>
          <td width="11%"><font color="#990033" size="2">括号</font></td>
          <td width="7%"><font color="#990033" size="2">逻辑符</font></td>
          <td width="7%"><font color="#990033" size="2">删除</font></td>
        </tr>
        <tr bgcolor="#FFFFCC">
          <td width="11%" height="20"> <select name="zkh" id="zkh">
              <option value="" selected>无</option>
              <option value="(">左括号</option>
            </select> </td>
          <%--<%!String selectSql="";%>声明条件列语句构造变量--%>
          <td width="15%" height="20"><font color="#000000">
            <select name="tjl" id="tjl">
              <jsp:useBean id="conn" scope="page" class="tl_proj.InConn"/>
              <jsp:useBean id="Fun" scope="page" class="tl_proj.Function" />
              <%
            String sql="";
            String selectSql="";
            ResultSet result=null;
            sql="select i_workerid,i_workername from web_m_worker";
            result=conn.executeQuery(sql);
            while(result.next())
              {%>
              <option value=<%=result.getString(1)%>><%=Fun.getStr(result.getString(2))%></option>
              <%selectSql+="<option value="+result.getString(1)+">"+Fun.getStr(result.getString(2))+"</option>";%>
              <%}
             %>
              <%conn.closeDb();%>
            </select>
            </font></td>
          <td width="9%" height="20"><font color="#000000">
            <select name="tjh" id="tjh">
            </select>
            </font></td>
          <td width="40%" height="20"><font color="#000000">
            <input name="tjz" type="text" id="tjz" value="?" size="40" >
            </font></td>
          <td width="11%" height="20"><font color="#000000">
            <select name="ykh" id="ykh">
              <option value="" selected>无</option>
              <option value=")">右括号</option>
            </select>
            </font></td>
          <td width="7%" height="20"><font color="#000000">
            <select name="ljh" id="ljh">
              <option value="" selected>无</option>
              <option value="and">and</option>
              <option value="or">or</option>
            </select>
            </font></td>
            <script language="JavaScript" type="text/JavaScript">
             var row=0;
             row=conditiontable.rows.length;
            </script>
          <td width="7%"><input id="flag" name="flag" type="checkbox" value=row onclick="alert(this.value);"></td>
        </tr>
      </table>
      <p>
      <script language="JavaScript" type="text/JavaScript">
        var dd="";
        dd="<%=selectSql%>";
      </script>
        <input type="button" name="add"     value="增加条件" onclick=JavaScript:AddRow(dd);>
        <input type="button" name="forward" value="上一步">
        <input type="button" name="next"    value="下一步">
        <input type="button" name="delete"  value="删除条件" onclick="del()">
        <input type="button" name="clean"   value="清空条件" onclick=JavaScript:CleanRow();>
      </p>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
    </form>
    </body>
    </html>
      

  3.   

    onclick="alert(event.srcElement.parentElement.rowIndex);"
    你的click事件明显就不是发生在表格行内的某个元素
    而是发生在"删除条件"这个按钮上,
    onclick="alert(event.srcElement.parentElement.tagName);"把上面的替换成这个,
    你将会看到"P"提示,因为此时事件并不是发生在你要删除的行上,而是发生在你准备进行行删除动作的操作对象上
    onclick="alert(event.srcElement.parentElement.parentElement.tagName);"这个如果放到
    checkbox上,那么你将看到提示"TR"