js 得到table中td的实际位置 
<TABLE border=1>
<TR>
<TD>cc</TD>
<TD colSpan="2">bb</TD>
<td>zz</td>
</TR>
<TR>
<TD>dd</TD>
<TD>ee</TD>
<TD>hh</TD>
<td>oo</td>
</TR>
</TABLE>中间td 的值为zz的真实位置为 0,3  而不是0,2  望js高手帮帮忙!

解决方案 »

  1.   

    就是算加上 colspan  和 rowspan 最终的位置
      

  2.   

    <html>
    <head>  
    </head>
    <body>
    <TABLE border=1 id="t1">
            <TR>
                <TD>cc</TD>
                <TD colSpan="2">bb</TD>
                <td>zz</td>
            </TR>
            <TR>
                <TD>dd</TD>
                <TD>ee</TD>
                <TD>hh</TD>
                <td>oo</td>
            </TR>
            </TABLE>
    <script type="text/javascript">
         var tbody=document.getElementById('t1').tBodies[0];
         var arr = tbody.rows;
         for(var i = 0,len = arr.length;i<len;i++){
              for(var j = 0,len_c = arr[i].cells.length;j<len_c;j++){
                  if(arr[i].cells[j].innerHTML == "zz"){
                     alert(i);
                     alert(j);
                  }
              }
             
         }
      </script>
    </body>
    </html>
      

  3.   

    6 楼得前辈 弄错了 答案还是 0,2   我最终要的结果是  0,3  目的要将colspan和rowspan 考虑到
      

  4.   

    因为他的行和列下标都是从0开始计数的 
    如果你需要0 3 把我的代码alert(j+1)就可以了
      

  5.   

    前辈啊 ...  不是   就是得到他的实际的位置 也就是将所有的td 最小化  也就是没有colspan 和rowspan 
      

  6.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <style type="text/css">
    </style></head><body>
    <TABLE border=1 id="tab">
            <TR>
                <TD>cc</TD>
                <TD colSpan="2">bb</TD>
                <td>zz</td>
            </TR>
            <TR>
                <TD>dd</TD>
                <TD>ee</TD>
                <TD>hh</TD>
                <td>oo</td>
            </TR>
            </TABLE>
    <script>
             var trs = document.getElementById('tab').getElementsByTagName('tr'),
    len = trs.length,row = 0,col = 0;

    for(var i = 0; i < len; i++){
    var tds = trs[i].getElementsByTagName('td');
    for(var j = 0; j < tds.length; j++){
    if(tds[j].innerHTML == 'zz'){
    row = i;
    col = j + 1;
    }
    }
    }

    document.write(row,col);
            </script></body>
    </html>
      

  7.   


    你是不是想把colSpan也算里面?
    <TR>
                <TD>cc</TD>
                <TD colSpan="2">bb</TD>
                <td>zz</td>
            </TR>
      

  8.   

    index是从0开始算的,所以到zz是2个,表示的是第三列。
      

  9.   

    如果你要计算 colSpan ,你需要这样啊
    <TABLE border=1 id="t1">
            <TR>
                <TD>cc</TD>
                <TD colSpan="2">bb</TD>
                <td>zz</td>
            </TR>
            <TR>
                <TD>dd</TD>
                <TD>ee</TD>
                <TD>hh</TD>
                <td>oo</td>
            </TR>
            </TABLE>
    <script type="text/javascript">
         var t=document.getElementById('t1');
         var cell = t.rows[0].getElementsByTagName("td");
         var cellPosition = 0;
         for (i = 0; i < cell.length; i++) {
           cellPosition += cell[i].colSpan;
           if (cell[i].innerHTML == "zz") {        
             alert(cellPosition)
           }
         }
      </script>
      

  10.   

    我希望不是专门针对这一个td  是 通用的 一个方法   方法的生命应该是这样写的...
    function returnTrueTd(table,xPos,yPos)
    {
       //通过代码得到table中坐标为xPos,yPos的真实位置的Td
       //也就是说将table的所有单元格最小化,没有跨行跨列这一说 
        //如下面的一张图片
    }
      

  11.   

    你必须对你给定的行、列进行循换,判断是否有colSpan,rowSpan属性才能达到你的目的。思路就是这样了,
      

  12.   

    不好办,colspan,rowspan只是在视觉上呈现跨行或跨列的样式,实际上不存在真正合并的行或列。
    而你想的是把那些本不存在的“被合并的单元格”当作实体对待。
    解答是告诉你怎样做才对,未必就是问啥答啥。所以最好能说明必须这样做的理由,否则遵循规定才是正道。
      

  13.   

    这位前辈说的非常有道理 ,  但是 我的确是  有这么一个需求   我在通过 得到他们的位置的时候  必须要用到递归   最后弄得我  头都大多了 ..  我在网上找到了 解决 这个的答案了 .. http://fireinjava.iteye.com/blog/759190