获取使用createElement在javascript中创建的div的宽度
我使用javascript函数createElement创建一个div,然后将其设置为innerHTML。完成后,我想获得显示div及其完整内容所需的宽度值获取使用createElement在javascript中创建的div的宽度,javascript,ajax,Javascript,Ajax,我使用javascript函数createElement创建一个div,然后将其设置为innerHTML。完成后,我想获得显示div及其完整内容所需的宽度值 var newDiv = document.createElement("div"); newDiv.innerHTML = "My new<br/>DIV"; // Get the width of the div here 创建div的javascript代码在AJAX回调上执行
var newDiv = document.createElement("div");
newDiv.innerHTML = "My new<br/>DIV";
// Get the width of the div here
创建div的javascript代码在AJAX回调上执行;我不知道这是否与问题有关。好的,问题是元素刚刚创建,没有附加到任何地方 沿着这条路走-
var newDiv=document.createElement(“div”);
然后,附加到HTML中的另一个元素,比如body
document.body.appendChild(newDiv);
然后,最后,使用命令测量
newDiv.clientWidth
所以,如果在控制台中尝试,它应该是这样的:
var newDiv=document.createElement(“div”);
=>未定义
文件.body.appendChild(newDiv);
=>
newDiv.clientWidth
=> 1281
div不在DOM中,因此它没有高度或宽度。你应该在得到它的宽度之前加上它。我不能直接加。这发生在自动完成列表上。它确实会添加到列表项中,但结果相同。但也许我可以把它添加到DOM中,然后像往常一样删除它并添加到列表中?我会试试。也许阴影DOM是一个解决方案:它工作得很好!谢谢多亏了特雷斯特。
Call Result
-------------------------------------- -------------
newDiv.width undefined
newDiv.scrollWidth 0
newDiv.clientWidth 0
newDiv.offsetWidth 0
newDiv.innerWidth undefined
newDiv.outerWidth undefined
newDiv.getBoundingClientRect().width 0