<HTML>
<BODY>
<TABLE>
 <TR>
   <TD>
     <LABEL onclick="alert(this.offsetWidth)">1234567890</LABEL>
   </TD>
  </TR>
<TABLE>
</BODY>
</HTML>

解决方案 »

  1.   

    但是如果label中的内容折了行,它的长度就不对了。why?
      

  2.   

    怎么个折行法?<HTML>
    <BODY>
    <TABLE>
     <TR>
       <TD>
         <LABEL onclick="alert(this.offsetWidth)">12345678<br>90</LABEL>
       </TD>
      </TR>
    <TABLE>
    </BODY>
    </HTML>
      

  3.   

    比如说,td的宽度为50p,而实际的内容"1234567890"的长度在这个td中放不下了,我就让它折了行,比如折成了 "1234567  890",前一段显示在后一段的上方。那么在这种情况下,我怎么才能知道这个字符串一共占有多少像素?
      

  4.   

    <HTML>
    <BODY>
    <TABLE>
     <TR>
       <TD width=50>
         <LABEL onclick="alert(this.offsetWidth)">12345678<br>90</LABEL>
       </TD>
      </TR>
    <TABLE>
    </BODY>
    </HTML>得到的不是现在了吗?你是要原来在一行的时候的宽度?
      

  5.   

    可能你理解错了,我所说的折行是自动折行,利用到了style中的word-break属性。页面开始时的字符串的具体值是不知道的,也就是长短可变。以上你的12345678<br>90中的 <BR>在实际的代码中是不存在的。
      

  6.   

    <HTML>
    <script language="javascript">
    function getLength(obj){
    oSpan = document.createElement("SPAN");
    oSpan.style.visibility = "hidden";
    oSpan.innerHTML = obj.innerText;
    document.body.insertBefore(oSpan);
    var len = oSpan.offsetWidth;
    oSpan.removeNode(true);
    return len;
    }
    </script>
    <BODY>
    <TABLE>
     <TR>
       <TD width=50 style="word-break:break-all">
         <LABEL onclick="alert(getLength(this))">1234567890</LABEL>
       </TD>
      </TR>
    </TABLE>
    </BODY>
    </HTML>