表格每个单元格中有一个文本框,某用鼠标点击某个文本框(即文本框获得焦点)时,
返回该文本框所在单元格的行索引值和列索引值是?

解决方案 »

  1.   


    <table width="200" border="1" id="demotable">
        <tr>
            <td>&nbsp;1</td>
            <td>&nbsp;</td>
            <td>&nbsp;<input type="text" onfocus="getIndex(this)" /></td>
        </tr>
        <tr>
            <td>&nbsp;2</td>
            <td>&nbsp;</td>
            <td>&nbsp;<input type="text" onfocus="getIndex(this)" /></td>
        </tr>
        <tr>
            <td>&nbsp;3</td>
            <td>&nbsp;</td>
            <td>&nbsp;<input type="text" onfocus="getIndex(this)" /></td>
        </tr>
        <tr>
            <td>&nbsp;4</td>
            <td>&nbsp;</td>
            <td>&nbsp;<input type="text" onfocus="getIndex(this)" /></td>
        </tr>
        <tr>
            <td>&nbsp;5</td>
            <td>&nbsp;</td>
            <td>&nbsp;<input type="text" onfocus="getIndex(this)" /></td>
        </tr>
    </table>
    <script type="text/javascript">
    function getIndex(obj){
    var $t=document.getElementById('demotable');
    for(var i=0;i<$t.rows.length;i++){
    if(obj.parentNode.parentNode==$t.rows[i]){
    for(var j=0;j<$t.rows[i].cells.length;j++){
    if(obj.parentNode==$t.rows[i].cells[j]){
    alert('行索引:'+i+'/列索引:'+j);
    break;
    }
    }
    break;
    }
    }
    };
    </script>
      

  2.   

    补充1楼,用 rowIndex 和 cellIndex 就可以了,不用循环
      

  3.   

    或者给input的name名称一样
    ,然后循环
      

  4.   


    兼容FF,IE的table属性操作,
      1,得到表格的行数与某行列数。i就是
          var table=document.getElementById("table");
          alert(table.rows.length);//得到table的行数
          for(var i=0;i<table.rows.length;i++)
          {
             alert(table.rows[i].cells.length);//得到某一行的TD个数
             //可以再循环每行的单元格
          }
      

  5.   

    对<TABLE>
    <TR>
    <TD> 1 </TD>
    <TD> 2</TD>
    <TD> <INPUT   TYPE= "text"   value="111" onclick= "alert(this.parentNode.cellIndex   +  ':'  +   this.parentNode.parentNode.rowIndex) "> </TD>
    </TR>
    <TR>
    <TD> 3</TD>
    <TD> 4</TD>
    <TD> 5</TD>
    </TR>
    </TABLE>