当文本具有特殊字符时,offsetWidth未正确计算

时间:2015-11-26 04:47:39

标签: javascript jquery html width

我正在尝试为我的方案找到文本宽度。 这是我的代码(简单示例)

var text = "Country <textinbrackets> and some following text";
var textObj = document.createElement('text');
$(textObj).attr({ 'id': 'measureTex'});
document.body.appendChild(textObj); 
textObj.innerHTML = text;
alert("Text Width:" + textObj.offsetWidth + " " + "Text Height:" + textObj.offsetHeight);

当我在我的文字中使用标签(&lt;&gt; )时,它不被考虑( )所以我无法找到确切的宽度文本。 文本的实际宽度为323,但返回为212 .. 如何找到确切的宽度..

示例链接:http://jsfiddle.net/W4Km8/7047/

怎么解决?

1 个答案:

答案 0 :(得分:2)

那是因为<textinbrackets>已被渲染为html元素。如果您检查文本,则会将<textinbrackets>视为html元素。

只需替换“&lt;”与

&lt;

和“&gt;”与

&gt;

所以,你的文字看起来像是

var text = "Country &lt;textinbrackets&gt; and some following text";

如果您不想更改文字,请使用此文件。

textObj.innerText = text;