Javascript计算div图层的宽度

       其实,我这个办法是最土的了,网上也好,DHTML中也好,都有很多取div宽度的方法,最常见的几个 clientWidth,scrollWidth。还有很多,估计DHTML里面介绍的很详细,可是大家会发现,如果你的div是动态的生成的或者div里面的内容是动态生成的,而对于div的属性来讲,都是取你设定好的值,如果你没有设置,也无法取到。比如:<div id=ceng1></div>

< script language = ' javascript ' >
function  createCeng() {
      
var st = "<table ><tr><td>,</td>.....</tr>.....</table>.....";

       document.getElementById(
"ceng1").innerHtml = st;

}


</ script >

 

上面的代码你要是取他的宽度,一直是0。所以我直接去每个<td>的内容,(好在我的<td>个数固定)

我用了一个方法取得字符串的宽度

 

function  getDataLength(st)  {
     
var lenPerByte = 6;//css中定义了字大小为12px
    
var len = 0;
 
if(st == null || st == ""{
                    
return 0;
}

for(int x = 0; i< st.length;i++{
    
if(st.charCodeAt(i) <0 || st.charCodeAt(i) >255)//汉字 {
          len = len + 2;   
}

else {
   len 
= len + 1
}

}

return  len;
}

 

这个方法也不是很准确,不过可以求<td>的宽度了(根据字符串长短自适应),然后找出最大的td,加上对应的边的宽度,基本上就差不多了,多测几次,就可以找一个差不多的值了。另外由于字母要比数字的宽一些,但是没关系,肉眼看不出来。这个方法不是很好,希望有高手再指导一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值