无法读取Element []中的属性“样式”

时间:2019-03-11 18:50:30

标签: typescript strong-typing

TypeScript。 document.elementsFromPoint返回Element[],但“元素”不包含诸如“样式”之类的属性。结果,我得到了:

  

未捕获的TypeError:无法读取未定义的属性'style'。

如何在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)";
                }
            }

        };

1 个答案:

答案 0 :(得分:0)

您要检查divs数组的长度是否为2,然后尝试从第3个数组元素读取(JavaScript中的数组为零索引)。

尝试将其更改为divs[1]