Uncaught TypeError: Cannot read property 'getAttribute' of undefined at move (script.js:112) at script.js:156

142
27 января 2020, 08:40
function move() {
    let moveFlag = true;
    let coordinates = [
        [figureBody[0].getAttribute('posX'), [figureBody[0]].getAttribute('posY')],
        [figureBody[1].getAttribute('posX'), [figureBody[1]].getAttribute('posY')],
        [figureBody[2].getAttribute('posX'), [figureBody[2]].getAttribute('posY')],
        [figureBody[3].getAttribute('posX'), [figureBody[3]].getAttribute('posY')],
    ];
    for (let i=0; i<coordinates.length; i++) {
        if (coordinates[i][1] == 1 || document.querySelector(`[posX = "${coordinates[i][0]}"][posY = "${coordinates[i][1] -1}"]`).classList.contains('set')) {
            moveFlag = false;
            break;
        }
    }
    if (moveFlag) {
        for (let i=0; i<figureBody.length; i++) {
            figureBody[i].classList.remove('figure');
        }
        figureBody = [
            document.querySelector(`[posX = "${coordinates[0][0]}"][posY = "${coordinates[0][1] -1}"]`),
            document.querySelector(`[posX = "${coordinates[1][0]}"][posY = "${coordinates[1][1] -1}"]`),
            document.querySelector(`[posX = "${coordinates[2][0]}"][posY = "${coordinates[2][1] -1}"]`),
            document.querySelector(`[posX = "${coordinates[3][0]}"][posY = "${coordinates[3][1] -1}"]`),
        ];
        for (let i=0; i<figureBody.length; i++) {
            figureBody[i].classList.add('figure');
        }
    } else {
        for (let i=0; i<figureBody.length; i++) {
            figureBody[i].classList.remove('figure');
            figureBody[i].classList.add('set');
        }
    }
    create();
}
Answer 1

Проблема в том, что, когда вы вызываете figureBody[0].getAttribute('posX'), массив figureBody пустой, и figureBody[0] = undefined. В связи с этим не получается вызывать метод getAttribute.

READ ALSO
Добавление объекта в JSON с сохранением cookie

Добавление объекта в JSON с сохранением cookie

При клике на кнопку в JSON должен записываться дополнительный объект, но получается что объект просто перезаписывается при клике сохраняя...

146
Как принимать постбеки от партнерки в счетчике (Яндекс Метрика или Рейтинг Mail)?

Как принимать постбеки от партнерки в счетчике (Яндекс Метрика или Рейтинг Mail)?

Основной вопрос - как учитывать конверсии в счетчике, если сайт не твойДанные о них можно получить от ПП через postback

218
Google Extensions запуск скрипта

Google Extensions запуск скрипта

Я искал, но так и не нашел, что-то похожее на мою проблемуВопрос в том, как запускать скрипт в какой-либо промежуток времени

133