使用javascript/dojo计算html元素(div)宽度?

使用javascript/dojo计算html元素(div)宽度?,javascript,dojo,Javascript,Dojo,通常在html中创建div时。可以使用offsetWidth或style.width(如果已声明)检查其宽度。但是,如果更改了innerHTML,使得div的宽度也发生了更改,那么这两个函数都不起作用(不确定,但在我的例子中没有) 一些代码: var div = document.createElement("div"); div.innerHtml = "asdfasdfasdfasdfsdfasdfasdfad"; alert(div.style.width); // this is not

通常在html中创建div时。可以使用offsetWidth或style.width(如果已声明)检查其宽度。但是,如果更改了innerHTML,使得div的宽度也发生了更改,那么这两个函数都不起作用(不确定,但在我的例子中没有)

一些代码:

var div = document.createElement("div");
div.innerHtml = "asdfasdfasdfasdfsdfasdfasdfad";
alert(div.style.width); // this is nothing
alert(div.offsetWidth); // this is 0

如何获取上面div的宽度?

无法获取未附加到文档的元素的宽度值

所以你应该把它附加到页面上,这样你就可以得到宽度


这是一个正在工作的

您无法获取未附加到文档的元素的宽度值

所以你应该把它附加到页面上,这样你就可以得到宽度


这是一个有效的问题

我意识到这是一个老问题,但对于许多从谷歌登陆这里的人,我会提供它

这是在Dojo1.7+中实现的方法。使用几何体模块,您可以获取并设置内容的宽度(不包括填充或边框)。这将忽略框大小

require(['dojo/dom-geometry'], function(domGeom) {
    var myDivNode = dojo.query('div')[0];
    var contentBox = domGeom.getContentBox(myDivNode);
    alert(contentBox.w);

    // This is how to set width/height
    domGeom.setContentSize(myDivNode, {w: 100, h: 100});
});

来源:

我意识到这是一个老问题,但对于许多从谷歌登陆这里的人,我会提供它

这是在Dojo1.7+中实现的方法。使用几何体模块,您可以获取并设置内容的宽度(不包括填充或边框)。这将忽略框大小

require(['dojo/dom-geometry'], function(domGeom) {
    var myDivNode = dojo.query('div')[0];
    var contentBox = domGeom.getContentBox(myDivNode);
    alert(contentBox.w);

    // This is how to set width/height
    domGeom.setContentSize(myDivNode, {w: 100, h: 100});
});

来源:

哦,我不知道。谢谢哦,我不知道。谢谢也许你会觉得有用也许你会觉得有用