请建议我以任何方式获取和更新打字稿中HTML元素的高度。
document.getElementsByClassName('height').style.height = childHeight;
无效。我得到了
“HtmlCollectionOf< Element>”类型中不存在属性“样式”
答案 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范围内的类型。