javascript - 动态插入的包含文本的 div 的宽度

标签 javascript jquery html css dom

我有一个脚本可以在 dom 中动态插入一个包含文本的 div。文本内容事先不得而知。

我需要知道这个 div 的宽度,但似乎 document.defaultView.getComputedStyle(node, "").getPropertyValue("width") 的返回值还是 node. offsetWidth 不可信任。

我是用setInterval记录的,值会随着时间变化。例如,在我的示例中,它以 929px 开头,然后更改为 908px。

这个 div 位于绝对位置,它有空白 nowrap,所以我不认为它被其他 dom 元素“插入”或者它在插入后以某种方式改变。

是否有一种优雅的方法来检索宽度,或者我是否必须在返回值稳定后使用丑陋的 setTimeout 来检索它?

最佳答案

尝试:

yourDOMElement.getClientBoundingRect()

这将返回一个具有 top、left、right、bottom、height 和 width 属性的对象。这应该是跨浏览器的。

注意:如果您要使用返回的位置属性(顶部、左侧、右侧、底部、高度),请在必要时考虑滚动偏移。

更新:为确保这适用于没有 width/height 属性的旧版浏览器,计算方法是从左/上减去右/下。

关于javascript - 动态插入的包含文本的 div 的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12958043/

相关文章:

javascript - 使用 ASP.NET Web API 下载二进制数据时,AngularJS GET byte[] 错误

单击按钮时显示 DIV 容器的 Javascript 函数

Javascript 操作在 magento 中不起作用

javascript - 当计数器有某个值时如何触发事件?

html - 如何在 CSS 中对齐图像下方的文本?

jquery - 如何使用 jQuery tablesorter 获取单击的列的名称

jquery - 你如何改变相对于绝对的位置?

javascript - 使用嵌套值对 <ul> 列表中的对象进行排序

html - Bootstrap 导航链接不合适

html - 获取无效的 HTTP 方法/URL 对尝试将 Firebase 存储图像 URL 加载到元标记时出错