日期:2014-05-16  浏览次数:20551 次

js中,怎么计算一个字符串宽度??
我从后台传到页面一个对象,从这个对象中获取一个字符串。根据这个对象动态填充一个div,但是有些属性的内容过长,需要做换行处理。


现在是想获取这个字段的宽度,如果过长就换行。

求解。

------解决方案--------------------
http://bbs.csdn.net/topics/300032210,算一下单个字符的长度, 然后。。。。
------解决方案--------------------
js获取字符串的长度很简单吧  就是字符串的一个属性
------解决方案--------------------
楼主说的宽度。width么?
字符串在什么标签内?
------解决方案--------------------
用个visibility:hidden的浮动的层来计算,浮动层的样式设置成和你的容器样式一样

<style>
.content{font-size:20px}
#dvCompute{position:absolute;visibility:hidden;}
</style>
<div class="content" id="dvCompute"></div>
<script>
    function Compute(v) {
        var d = document.getElementById('dvCompute');
        d.innerHTML = v;
        return { w: d.offsetWidth, h: d.offsetHeight };
    }
    window.onload = function () {
        var p = Compute('要计算的内容aaaaaaaaaaaaaaaaaaaaaaaaaaaa<br/>123132');
        alert(p.w + '\n' + p.h);
        var p = Compute('要计算的内容aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<br/>123132<br/>123132');
        alert(p.w + '\n' + p.h);
    }
</script>

------解决方案--------------------
单纯文本应该很难,如果在标签内还能想想办法。
------解决方案--------------------
引用:
用个visibility:hidden的浮动的层来计算,浮动层的样式设置成和你的容器样式一样

<style>
.content{font-size:20px}
#dvCompute{position:absolute;visibility:hidden;}
</style>
<div class="content" id="dvCompute"></div>
<script>