javascript - 使用 createElement 获取在 javascript 中创建的 div 的宽度
问题描述
我正在使用 javascript 函数 createElement 创建一个 div,然后将其设置为 innerHTML。完成后,我想获取显示 div 及其全部内容所需的宽度值。
var newDiv = document.createElement("div");
newDiv.innerHTML = "My new<br/>DIV";
// Get the width of the div here
我尝试了以下方法:
Call Result
-------------------------------------- -------------
newDiv.width undefined
newDiv.scrollWidth 0
newDiv.clientWidth 0
newDiv.offsetWidth 0
newDiv.innerWidth undefined
newDiv.outerWidth undefined
newDiv.getBoundingClientRect().width 0
创建 div 的 javascript 代码在 AJAX 回调上执行;我不知道这是否与问题有关。
解决方案
好的,所以问题是元素刚刚创建,并没有附加到任何地方。
沿着这条路走——
var newDiv = document.createElement("div");
然后,追加到 HTML 中的另一个元素,比如 body。
document.body.appendChild(newDiv);
然后,最后,使用命令测量
newDiv.clientWidth
因此,如果在控制台中尝试,它应该看起来像这样:
var newDiv = document.createElement("div");
=> undefined
document.body.appendChild(newDiv);
=> <div></div>
newDiv.clientWidth
=> 1281
推荐阅读
- sql-server - SQL,所有表,一些特殊列,第一个 NOT NULL 值
- javascript - Highcharts:如何更改“afterSetExtremes”上的“overscroll”参数?
- hugo - 是否有可能,使框架 HUGO 从 json 构建动态网站?
- c# - 如何在 C# 中将表类型作为输出参数添加到 Dapper 存储过程
- angular - 根据 id 连接两个 observables
- logging - 当应用在 Kubernetes 上运行时,将应用日志直接推送到 Graylog
- c++ - 关于两阶段查找和this指针
- java - 带有 ListView 的片段始终为空 Android
- java - 如何在 java 中实现 Postgresql 特定功能,hibernate 不支持(VALUES 表达式)
- vb.net - 在 VB.NET 中获取本地 IP 地址 (IPV4) - 错误“此类型已过时解析”较新版本