table中的某行有个控件,如何知道这个控件在table中第几行?

解决方案 »

  1.   


    <table id="tb" onclick="check()">    <tr><td>1</td></tr>
        
        <tr><td>2</td></tr>
        
        <tr><td><button onclick="check()">3</button></td></tr>
        
        <tr><td>4</td></tr>
        
        <tr><td>5</td></tr>
        
    </table><script>
    function check()
    {
        var e = arguments[0] || window.event;
        var o = e.target || e.srcElement;
        while(o.tagName.toUpperCase() != "TR")
        {
            o = o.parentNode;
        }
        //注1
        //alert("第" + o.id.replace("tr", "") + "行");
        //注2
        var Trs = document.getElementById("tb").getElementsByTagName("TR");
        for (var i =0, l = Trs.length; i < l; i++)
        {
            if (o === Trs[i])   {alert("第" + (i + 1) + "行");}
        }
    }</script>
    代码使用了遍历的方法,如果给每行设定固定的id(比如id="trx" x为行号),就可以不必遍历了(注1以下反注释,注2以下注释)
      

  2.   

    <script language="JavaScript">
        function function1() {
            var elem=document.getElementById("btn1").parentNode.parentNode;
            var m = elem.rowIndex+1; 
            alert("Row Index: "+m);
        }
    </script>
    <table width="100" border="3" cellspacing="2" cellpadding="2" onclick="function1();">
       <tr id="tr1">
           <td>Row 1</td>
       </tr>
       <tr id="tr2"> 
           <td>Row 2</td>
       </tr>
       <tr id="tr3"> 
           <td>Row 3<input type=button id="btn1"></td>
       </tr>
       <tr id="tr4"> 
           <td>Row 4</td>
       </tr>
    </table>
      

  3.   

    才知道有rowIndex属性Up 2L,然后小改小改<table id="tb" onclick="check()">    <tr><td>1</td></tr>
        
        <tr><td>2</td></tr>
        
        <tr><td><button onclick="check()">3</button></td></tr>
        
        <tr><td>4</td></tr>
        
        <tr><td>5</td></tr>
        
    </table><script>
    function check()
    {
        var e = arguments[0] || window.event;
        var o = e.target || e.srcElement;
        while(o.tagName.toUpperCase() != "TR" && o)
        {
            o = o.parentNode;
        }
        if(o){alert("第" + (o.rowIndex + 1) + "行");}
    }</script>
      

  4.   

    玩玩jquery吧~很轻松的~你是table,用tr分行是吧~alert($("#table的ID tr").index($("#控件ID").closest("tr"))):这一行代码就搞定了~
      

  5.   

    var i=1;--整形
    var j="aa"--字符串
    var date='2009-9-9'--时间
      

  6.   


    有个问题
    如果说
    <table width="100" border="3" cellspacing="2" cellpadding="2" onclick="function1();">
       <tr id="tr1">
           <td>Row 1</td>
       </tr>
       <tr id="tr2"> 
           <td>Row 2</td>
       </tr>
       <tr id="tr3"> 
           <td>Row 3</td>
       </tr>
       <tr id="tr4"> 
           <td>Row 4</td>
       </tr>
    </table>
    <div>
    <input type=button id="btn1">
    </div>
    body中式这样的话
    那怎么找出来了》???、
      

  7.   

    那样的话,它就不在table中了,找它就没意义了。
      

  8.   


    function $(o){
          return "function" == typeof o ? (window.onload = o) : document.getElementById(o) || o;
    }
    $(function(){
          $("tb").onclick = function(e){
                var e = e || window.event;
                var o = e.srcElement || e.target;
                alert("第"+[o.parentNode.rowIndex+1||o.parentNode.parentNode.rowIndex+1]+"行");
          }
    })
    </script><table id="tb" width="100" border="3" cellspacing="2" cellpadding="2">
       <tr id="tr1">
           <td>Row 1</td>
       </tr>
       <tr id="tr2"> 
           <td>Row 2</td>
       </tr>
       <tr id="tr3"> 
           <td>Row 3<input type=button></td>
       </tr>
       <tr id="tr4"> 
           <td>Row 4</td>
       </tr>
    </table>