javascript - 当文本具有特殊字符时,offsetWidth 无法正确计算

标签 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);

当我在文本中使用标签时(<>),它没有被考虑(),所以我无法找到文本的确切宽度。 文本的实际宽度为 323,但返回为 212.. 如何找到准确的宽度..

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

如何解决?

最佳答案

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

只需将“<”替换为

&lt;

和 ">"与

&gt;

所以,你的文字看起来像

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

如果您不想更改文本,请使用它。

textObj.innerText = text;

关于javascript - 当文本具有特殊字符时,offsetWidth 无法正确计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33930794/

相关文章:

javascript - 以另一种格式格式化 Date.parse(dateString) 中的日期

javascript - 对不包括零索引的数组中的 CSV 字符串进行排序

javascript - Firebase 实时数据库使用 JavaScript 发布旧图像

javascript - 如何识别单击了 Slickgrid 中一个单元格中的两个按钮中的哪一个

jquery - 从 JQuery 对象数组中获取元素

javascript - animate.css 的滚动效果

javascript - 不可变 setIn 嵌套对象返回无效的 keyPath 错误

javascript - Jquery加载匿名?

html - 如何让 div 落后于另一个 div?

javascript - 带有跳转链接的网页