如何获取和设置div.class高度

时间:2017-01-17 06:12:51

标签: typescript typescript2.0

请建议我以任何方式获取和更新打字稿中HTML元素的高度。

document.getElementsByClassName('height').style.height = childHeight;

无效。我得到了

  

“HtmlCollectionOf< Element>”类型中不存在属性“样式”

2 个答案:

答案 0 :(得分:2)

这里的一个问题可能是getElementsByClassName返回带有类height的元素数组。要应用style method,您需要有一个元素。

此代码将10px高度应用于第一个这样的元素:

document.getElementsByClassName('height')[0].style.height = '10px';

答案 1 :(得分:1)

首先,您所追求的代码:

const cnElems = document.getElementsByClassName("cn");

for (let i = 0; i < cnElems.length; i++) {
    const e = cnElems[i];
    if (e instanceof HTMLElement) {
        e.style.height = "10px";
    }
}

然后,解释......这里有两个主要障碍:

  • getElementsByClassName返回HTMLCollection<Element>
    对于较旧的目标和浏览器,此集合需要使用旧学校for循环进行枚举。对于较新的目标(&gt; = ES6)和浏览器,请参阅this answer
  • 该集合的元素属于Element,但style上定义了HTMLElement。幸运的是,TS会自动缩小type guard范围内的类型。