Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取使用createElement在javascript中创建的div的宽度_Javascript_Ajax - Fatal编程技术网

获取使用createElement在javascript中创建的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回调上执行

我使用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”);
然后,附加到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