Не удается прочитать свойство «стиль» в Element []

Машинопись. document.elementsFromPoint возвращает Element[], но «Элемент» не содержит такого свойства, как «стиль». В результате я получаю:

Uncaught TypeError: Не удается прочитать свойство «стиль» неопределенного.

Как изменить стиль «Элемент» в 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)";
                }
            }

        };

person Александр Савкин    schedule 11.03.2019    source источник
comment
Индексы массива начинаются с 0   -  person Jeff Mercado    schedule 11.03.2019
comment
Массивы отсчитываются от нуля; divs[2] не определен   -  person danronmoon    schedule 11.03.2019
comment
Обычно я не допускаю таких грубых ошибок. Извините меня. Но как теперь обновить мои div?   -  person Александр Савкин    schedule 11.03.2019
comment
для обновления нового div: stackoverflow.com/questions/13388379/   -  person Александр Савкин    schedule 11.03.2019
comment
Не уверен, что вы подразумеваете под upgrade новыми разделами. Изменить divs[2] на divs[1]   -  person danronmoon    schedule 11.03.2019


Ответы (1)


Вы проверяете, что длина вашего массива divs равна 2, а затем пытаетесь прочитать из 3-го элемента массива (массивы в JavaScript имеют нулевой индекс).

Попробуйте изменить его на divs[1]

person Richard    schedule 11.03.2019
comment
Прошу прощения за свою невнимательность. Но как теперь обновить мои div? - person Александр Савкин; 11.03.2019