【发布时间】:2019-08-02 03:48:47
【问题描述】:
打字稿。 document.elementsFromPoint 返回Element[],但“元素”不包含“样式”之类的属性。结果,我得到:
未捕获的类型错误:无法读取未定义的属性“样式”。
如何在 TypeScript 中更改“元素”的样式。 我的代码:
document.body.onclick = function(event: MouseEvent) {
let elements: Array<HTMLElement> = document.elementsFromPoint(event.clientX, event.clientY) as Array<HTMLElement>;
let divs: Array<HTMLElement> = [] as Array<HTMLElement>;
for (let i = 0; i < elements.length; i++) {
if(elements[i].tagName == 'DIV') {
divs.push(elements[i])
}
}
if (divs.length == 2) { // before if OK
console.log('2 divs!!! Unit is here!');
let flag: string = document.body.getAttribute('flag');
if (flag != '1') {
document.body.setAttribute('flag', '1');
divs[2].style.backgroundColor = "rgba( 255, 1, 0, 0.5)";
}
else {
document.body.setAttribute('flag', '0');
divs[2].style.backgroundColor = "rgba( 255, 1, 0, 0.5)";
}
}
};
【问题讨论】:
-
数组索引从 0 开始
-
数组是从零开始的; divs[2] 未定义
-
通常我不允许这样的严重错误。打扰一下。但是现在如何升级我的 div?
-
用于升级新 div:stackoverflow.com/questions/13388379/…
-
不确定您所说的
upgrade新 div 是什么意思。将divs[2]更改为divs[1]