使用Javascript测量div的宽度

时间:2017-01-25 00:15:35

标签: javascript html css

我有两个问题。 更重要的是如何测量div的宽度?不是获取CSS值,而是在px或ems等中。 现在我正在这样做

document.getElementById("menu").addEventListener("click", GetWidth);
function GetWidth() {
var ulObject=document.querySelector(".dropdown-menu");
var obtainedStyle=window.getComputedStyle(ulObject);
var ulWidth=obtainedStyle.getPropertyValue("width");
console.log(ulWidth);
}

它起到了作用。问题是width的属性设置为auto,但可能会更改。如何获得任何可用的价值?
第二个问题是如何创建一个事件处理程序但是有一个类? querySelector和getElementByClassName不起作用。 我现在宁愿避免使用jQuery,但如果它是我唯一可以接受它的选择。 How do I retrieve an HTML element's actual width and height?中给出的答案并不奏效。即使我没有显示:没有; offsetWidth仍然显示为0。

1 个答案:

答案 0 :(得分:0)

使用getBoundingClientRect

var rect = ulObject.getBoundingClientRect();
var ulWidth = rect.width;

如果您需要支持IE8及之前的版本,可以使用

var ulWidth = rect.right - rect.left;