var   thisRow   =   event.srcElement.parentNode.parentNode; thisRow.focus();是这样吗?这样不行啊

解决方案 »

  1.   

    用td就可以了,tr是没有这个方法的.
    即:
    var thistd = event.srcElement.parentNode;
    thistd.focus();
      

  2.   

    不行啊 不管用啊 以下是源码
    <HTML>
    <HEAD>
    <TITLE>New Document </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    <script language="javascript">   
      function   InsertRow()   
      {   
          var   thisRow   =   event.srcElement.parentNode.parentNode;   
          var   nextRow   =   thisRow.nextSibling;
          if (typeof(thisRow.flag)=="undefined" || !thisRow.flag) {
          var   tr = table1.insertRow(thisRow.rowIndex + 1); 
          var   td = tr.insertCell();   
          td.innerText   =   "new   add";   
          td   =   tr.insertCell(); 
          thisRow.flag = true;
    } else {
    table1.deleteRow(thisRow.rowIndex + 1);
    thisRow.flag = false;
    }  }   
    </script>
    </HEAD>
    <BODY>
    <TABLE id="table1" border="1">
    <TR>
    <TD>aaaa</TD>
    <TD><a href="#" onclick="InsertRow();">111111</a></TD>
    </TR>
    <TR>
    <TD>bbbbb</TD>
    <TD><a href="#" onclick="InsertRow();">22222</a></TD>
    </TR>
    <TR>
    <TD>ccccc</TD>
    <TD><a href="#" onclick="InsertRow();">33333</a></TD>
    </TR>
    <TR>
    <TD>dddddd</TD>
    <TD><a href="#" onclick="InsertRow();">444444</a></TD>
    </TR>
    </TABLE>
    </BODY>
    </HTML>在行少的情况下看不出来问题 在行多的情况下 点一下是增加了一行 但是焦点却在最前面 这样的话点一下以后还要往下翻才能看到动态添加的那一行的内容 所以我想能不能有一个焦点控制住 动态添加以后焦点就停留在动态添加的那部分 这个怎么做啊?我用1楼说的方法 不管用啊
      

  3.   

    让td获得焦点我也没试出来,不知道是哪的问题.
    不过在td中加一个文本筐,就可以让文本框获得焦点.这个方法不算好.也希望有好的解决办法.关注
      

  4.   

    td有这个方法,但不能带来你想要的效果.
    你这个效果要的是新增一行后,焦点设置到新增行的第一个可编辑控件上去.
    所以,可以采用,新增行(设为trNew)如下处理:
    var inputs = trNew.getElementsByTagName("INPUT");
    for( var i=0; i<inputs.length; i++ )
    {
      if( inputs[i].disabled == false )
      {
        inputs[i].focus();
        return;
      }
    }
      

  5.   

    在后台写上如下代码:
    public void GetFocus(string str_ctrl_name,Page page)
    {
    page.RegisterStartupScript("","<script>document.forms(0)."+str_ctrl_name+".focus();document.forms(0)."+str_ctrl_name+".select();</script>");
    }
    然后在需要获得焦点的地方调用此函数就可以了
    例如让TextBox1获得焦点,则可以如下写:
    GetFocus("TextBox1",this.Page);
      

  6.   

    可以通过textRange对象的moveToPoint方法实现