Разбил файл html на 3, теперь js пишет ошибку

проблема такая, у меня был файл index.html со всем кодом, потом я решил в основном файле(index.html) сделать ссылки на другие файлы которые в этом же проэкте. Я роскидал код по файлам и теперь пишет такую ошибку: script.js:65 Uncaught TypeError: Cannot read properties of null (reading 'addEventListener'). Что делать?

Псс.. Должно работать так, сначала на главной странице (index.html) 3 ссылки Сложение (+) Вычитание (-) Умножение () кликаешь на выбранную и тебя перебрасывает на страницу с задачей ,инпутом, кнопкой ответить ну и кнопка подсказки(правильного ответа).*

Ссылка на полный проект https://github.com/Jenya18/maths.git

// сложение
const addition = document.querySelector('.addition'),
    additionInput = document.querySelector('.addition > input'),
    additionBtn = document.querySelector('.addition-btn'),
    numAddition1 = document.querySelector('.num__addition-1'),
    numAddition2 = document.querySelector('.num__addition-2');
// вычитание
const subtraction = document.querySelector('.subtraction'),
    subtractionInput = document.querySelector('.subtraction > input'),
    subtractionBtn = document.querySelector('.subtraction-btn'),
    numSubtraction1 = document.querySelector('.num__subtraction-1'),
    numSubtraction2 = document.querySelector('.num__subtraction-2');

// умножение
const multiplication = document.querySelector('.multiplication'),
    multiplicationInput = document.querySelector('.multiplication > input'),
    numMultiplication1 = document.querySelector('.num__multiplication-1'),
    numMultiplication2 = document.querySelector('.num__multiplication-2'),
    multiplicationBtn = document.querySelector('.multiplication-btn');



// попап
const popupMask = document.querySelector('.popup-mask'),
    popupInfo = popupMask.querySelector('.popup-info'),
    popup = popupMask.querySelector('.popup');


popupMask.addEventListener('click', function () {
    popupMask.classList.add('hidden');
});

function successAnswer() {
    popupMask.classList.remove('hidden');
    popupMask.classList.add('show');
    popupInfo.innerHTML = 'Правильно, молодец!';
    popup.classList.remove('errorOption');
    popup.classList.add('successOption');
    setTimeout(() => {
        location.reload();
    }, 3000);
    popupMask.addEventListener('click', function () {
        location.reload();
    });
}

function errorAnswer() {
    popupMask.classList.remove('hidden');
    popupMask.classList.add('show');
    popupInfo.innerHTML = 'Не правильно, <br/>Подумай еще.';
    popup.classList.add('errorOption');
    setTimeout(() => {
        popupMask.classList.add('hidden');
    }, 3000);
}



// сложение
function randomNumberAddition() {
    let n1 = (Math.floor(Math.random() * 100) + 1);
    let n2 = (Math.floor(Math.random() * 100) + 1);
    let res = n1 + n2;
    numAddition1.innerHTML = n1;
    numAddition2.innerHTML = n2;

    additionBtn.addEventListener('click', function () {
        if (res == additionInput.value) {
            successAnswer();
        } else {
            errorAnswer();
        }
    });
    let answer = document.querySelector('.answer__addition');
    answer.onclick = function () {
        answer.innerHTML = res;
    };
    additionInput.addEventListener('keyup', function (e) {
        e = e || window.event;
        if (e.keyCode == 13) additionBtn.click();
    });
    console.log(res);
}
randomNumberAddition();



// вычитание
function randomNumberSubtraction() {
    let n1 = (Math.floor(Math.random() * 100) + 196);
    let n2 = (Math.floor(Math.random() * 100) + 13);
    let res = n1 - n2;
    numSubtraction1.innerHTML = n1;
    numSubtraction2.innerHTML = n2;

    subtractionBtn.addEventListener('click', function () {
        if (res == subtractionInput.value) {
            successAnswer();
        } else {
            errorAnswer();
        }
    });
    let answer = document.querySelector('.answer__subtraction');
    answer.onclick = function () {
        answer.innerHTML = res;
    };
    subtractionInput.addEventListener('keyup', function (e) {
        e = e || window.event;
        if (e.keyCode == 13) subtractionBtn.click();
    });
    console.log(res);
}
randomNumberSubtraction();



// умножение
function randomNumberMultiplication() {
    let n1 = (Math.floor(Math.random() * 12) + 1);
    let n2 = (Math.floor(Math.random() * 12) + 1);
    let res = n1 * n2;
    numMultiplication1.innerHTML = n1;
    numMultiplication2.innerHTML = n2;
    multiplicationBtn.addEventListener('click', function () {
        if (res == multiplicationInput.value) {
            successAnswer();
        } else {
            errorAnswer();
        }
    });
    let answer = document.querySelector('.answer__multiplication');
    answer.onclick = function () {
        answer.innerHTML = res;
    };
    multiplicationInput.addEventListener('keyup', function (e) {
        e = e || window.event;
        if (e.keyCode == 13) multiplicationBtn.click();
    });
    console.log(res);
}
randomNumberMultiplication();
body {
    background-color: rgb(3, 85, 139);
    color: #fff;
    font-family: sans-serif;
}


.answer--style {
    cursor: pointer;
    color: rgb(18, 185, 93);
    display: inline-block;
}

.answer--style img {
    width: 25px;
    height: 25px;
}

.answer--style img:hover {
    border: 2px solid #fff;
    border-radius: 50%;
    background-color: rgb(144, 43, 226);
}

.answer--style:hover {
    color: rgb(18, 185, 93);
}

.popup-mask {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: rgba(0, 0, 0, 0.623);


    z-index: 1;
    opacity: 0;
    overflow: hidden;
    visibility: hidden;
    transition: .3s linear;
}

.popup-mask.show {
    opacity: 1;
    overflow: visible;
    visibility: visible;
    transition: .3s linear;
}

.popup-mask.hidden {
    opacity: 0;
    overflow: hidden;
    visibility: hidden;
    transition: .3s linear;
}

.popup {
    width: 30%;
    height: 40%;
    border-radius: 43% 57% 62% 38% / 27% 49% 51% 73%;
    position: relative;
    top: 30px;
    left: 66%;
    z-index: 2;
    display: flex;
    justify-content: center;
    align-items: center;


    -webkit-box-shadow: 5px 5px 5px 0px #000000, inset 4px 4px 15px 0px #000000, 4px 1px 15px 5px rgba(79, 255, 80, 0);
    box-shadow: 5px 5px 5px 0px #000000, inset 4px 4px 15px 0px #000000, 4px 1px 15px 5px rgba(79, 255, 80, 0);


    /* -webkit-box-shadow: 4px 5px 50px 50px rgba(255,255,255,0.2); 
    box-shadow: 4px 5px 50px 50px rgba(255,255,255,0.2); */
}

.popup.successOption {
    background-image: linear-gradient(5deg,
            hsl(171deg 75% 28%) 0%,
            hsl(164deg 100% 27%) 24%,
            hsl(153deg 100% 29%) 35%,
            hsl(135deg 81% 34%) 45%,
            hsl(139deg 81% 38%) 55%,
            hsl(160deg 100% 40%) 65%,
            hsl(171deg 100% 45%) 76%,
            hsl(179deg 100% 50%) 100%);
    color: #fff;
    letter-spacing: 1.5px;
    font-weight: bold;
    font-size: 20px;
}

.popup.errorOption {
    background-image: linear-gradient(345deg,
            hsl(0deg 85% 35%) 0%,
            hsl(322deg 100% 23%) 33%,
            hsl(321deg 100% 27%) 67%,
            hsl(0deg 78% 51%) 100%);
    color: #fff;
    letter-spacing: 1.5px;
    font-weight: bold;
    font-size: 20px;

}

.popup-info {
    line-height: 30px;
}




a + a {
    margin-left: 50px;
}
<!--index.html-->
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="style/stylereset.css">
    <link rel="stylesheet" href="style/style.css">

    <link rel="stylesheet" href="addition.html">
    <link rel="stylesheet" href="subtraction.html">
    <link rel="stylesheet" href="multiplication.html">
</head>

<body>

    <div class="popup-mask">
        <div class="popup">
            <div class="popup-info"></div>
        </div>
    </div>


<div class="select">
    <div class="select__inner">
        <a href="addition.html" class="select__addition">Сложение (+)</a>
        <a href="subtraction.html" class="select__substraction">Вычитание (-)</a>
        <a href="multiplication.html" class="select__multiplication">Умножение (*)</a>
    </div>
</div>



    <script src="js/script.js"></script>
</body>

</html>
<!-- /index.html-->


<!--substraction.html-->
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Вычитание (-)</title>
    <link rel="stylesheet" href="style/stylereset.css">
    <link rel="stylesheet" href="style/style.css">
    <link rel="stylesheet" href="index.html">
    <link rel="stylesheet" href="addition.html">
    <link rel="stylesheet" href="multiplication.html">
</head>

<body>

    <div class="popup-mask">
        <div class="popup">
            <div class="popup-info"></div>
        </div>
    </div>


    <!-- вычитание -->
    <div class="subtraction">
        <span class="num__subtraction-1"></span>
        <span>-</span>
        <span class="num__subtraction-2"></span>
        <input type="text">
        <button class="subtraction-btn">Ответить</button>
        <div class="answer__subtraction answer--style"><img src="img/answer.png" alt="Watch"></div>

    </div>

    <script src="js/script.js"></script>
</body>

</html>
<!--/substraction.html-->


<!--addition.html-->
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Сложение (+)</title>
    <link rel="stylesheet" href="style/stylereset.css">
    <link rel="stylesheet" href="style/style.css">

    <link rel="stylesheet" href="index.html">
    <link rel="stylesheet" href="subtraction.html">
    <link rel="stylesheet" href="multiplication.html">
</head>

<body>

    <div class="popup-mask">
        <div class="popup">
            <div class="popup-info"></div>
        </div>
    </div>

    <!-- сложение -->
    <div class="addition">
        <span class="num__addition-1"></span>
        <span>+</span>
        <span class="num__addition-2"></span>
        <input type="text">
        <input type="submit" class="addition-btn" value="Ответить">
    </form>
        <div class="answer__addition answer--style"><img src="img/answer.png" alt="Watch"></div>
    </div>

    <script src="js/script.js"></script>
</body>

</html>
<!--/addition.html-->


<!--multiplication.html-->
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Умножение (*)</title>
    <link rel="stylesheet" href="style/stylereset.css">
    <link rel="stylesheet" href="style/style.css">
    <link rel="stylesheet" href="index.html">
    <link rel="stylesheet" href="addition.html">
    <link rel="stylesheet" href="subtraction.html">
</head>

<body>

    <div class="popup-mask">
        <div class="popup">
            <div class="popup-info"></div>
        </div>
    </div>

    <!-- умножение -->
    <div class="multiplication">
        <span class="num__multiplication-1"></span>
        <span>*</span>
        <span class="num__multiplication-2"></span>
        <input type="text">
        <button type="submit" class="multiplication-btn">Ответить</button>
        <div class="answer__multiplication answer--style"><img src="img/answer.png" alt="Watch"></div>
    </div>


    <script src="js/script.js"></script>
</body>

</html>
<!--/multiplication.html-->


Ответы (1 шт):

Автор решения: Alexandr_Yakovlev

Я запустил ваш проект, но не увидел указанной вами ошибки script.js:65 Uncaught TypeError: Cannot read properties of null (reading 'addEventListener, зато были такие: Cannot set properties of null (setting 'innerHTML')

Перед каким-либо обращением к DOM убедитесь, что данный элемент существует, ведь у вас один js файл на все страницы (Я бы разбил на несколько, чтобы таких инцидентов не было).

// сложение
const addition = document.querySelector('.addition'),
    additionInput = document.querySelector('.addition > input'),
    additionBtn = document.querySelector('.addition-btn'),
    numAddition1 = document.querySelector('.num__addition-1'),
    numAddition2 = document.querySelector('.num__addition-2');
// вычитание
const subtraction = document.querySelector('.subtraction'),
    subtractionInput = document.querySelector('.subtraction > input'),
    subtractionBtn = document.querySelector('.subtraction-btn'),
    numSubtraction1 = document.querySelector('.num__subtraction-1'),
    numSubtraction2 = document.querySelector('.num__subtraction-2');

// умножение
const multiplication = document.querySelector('.multiplication'),
    multiplicationInput = document.querySelector('.multiplication > input'),
    numMultiplication1 = document.querySelector('.num__multiplication-1'),
    numMultiplication2 = document.querySelector('.num__multiplication-2'),
    multiplicationBtn = document.querySelector('.multiplication-btn');



// попап
const popupMask = document.querySelector('.popup-mask'),
    popupInfo = popupMask.querySelector('.popup-info'),
    popup = popupMask.querySelector('.popup');


popupMask.addEventListener('click', function () {
    popupMask.classList.add('hidden');
});

function successAnswer() {
    popupMask.classList.remove('hidden');
    popupMask.classList.add('show');
    popupInfo.innerHTML = 'Правильно, молодец!';
    popup.classList.remove('errorOption');
    popup.classList.add('successOption');
    setTimeout(() => {
        location.reload();
    }, 3000);
    popupMask.addEventListener('click', function () {
        location.reload();
    });
}

function errorAnswer() {
    popupMask.classList.remove('hidden');
    popupMask.classList.add('show');
    popupInfo.innerHTML = 'Не правильно, <br/>Подумай еще.';
    popup.classList.add('errorOption');
    setTimeout(() => {
        popupMask.classList.add('hidden');
    }, 3000);
}



// сложение
function randomNumberAddition() {
    if (addition) {
        let n1 = (Math.floor(Math.random() * 100) + 1);
        let n2 = (Math.floor(Math.random() * 100) + 1);
        let res = n1 + n2;
        numAddition1.innerHTML = n1;
        numAddition2.innerHTML = n2;

        additionBtn.addEventListener('click', function () {
            if (res == additionInput.value) {
                successAnswer();
            } else {
                errorAnswer();
            }
        });
        let answer = document.querySelector('.answer__addition');
        answer.onclick = function () {
            answer.innerHTML = res;
        };
        additionInput.addEventListener('keyup', function (e) {
            e = e || window.event;
            if (e.keyCode == 13) additionBtn.click();
        });
        console.log(res);
    }
}
randomNumberAddition();



// вычитание
function randomNumberSubtraction() {
    if (subtraction) {
        let n1 = (Math.floor(Math.random() * 100) + 196);
        let n2 = (Math.floor(Math.random() * 100) + 13);
        let res = n1 - n2;
        numSubtraction1.innerHTML = n1;
        numSubtraction2.innerHTML = n2;

        subtractionBtn.addEventListener('click', function () {
            if (res == subtractionInput.value) {
                successAnswer();
            } else {
                errorAnswer();
            }
        });
        let answer = document.querySelector('.answer__subtraction');
        answer.onclick = function () {
            answer.innerHTML = res;
        };
        subtractionInput.addEventListener('keyup', function (e) {
            e = e || window.event;
            if (e.keyCode == 13) subtractionBtn.click();
        });
        console.log(res);
    }
}
randomNumberSubtraction();



// умножение
function randomNumberMultiplication() {
    if (multiplication) {
        let n1 = (Math.floor(Math.random() * 12) + 1);
        let n2 = (Math.floor(Math.random() * 12) + 1);
        let res = n1 * n2;
        numMultiplication1.innerHTML = n1;
        numMultiplication2.innerHTML = n2;
        multiplicationBtn.addEventListener('click', function () {
            if (res == multiplicationInput.value) {
                successAnswer();
            } else {
                errorAnswer();
            }
        });
        let answer = document.querySelector('.answer__multiplication');
        answer.onclick = function () {
            answer.innerHTML = res;
        };
        multiplicationInput.addEventListener('keyup', function (e) {
            e = e || window.event;
            if (e.keyCode == 13) multiplicationBtn.click();
        });
        console.log(res);
    }
}
randomNumberMultiplication();
→ Ссылка