@sunsexsurf
IT & creative

Как пофиксить вызов JS из HTML?

Есть файл с парой функций, суть которых в построении таблицы и заполнении ее ячеек годами с 1992 до текущего года:

let CurrentYear = new Date().getFullYear();
let StartYear = 1992
Distance = CurrentYear - StartYear

celoe = Math.floor(Distance / 10)
ostatok = Distance % 10
if (ostatok > 0) {
  celoe = celoe + 1
}


createTableBody();
tableFill();

function createTableBody() {

  let rows = celoe;
  let cells = 10;

  let table = document.getElementById('my-table');
  table.innerHTML = ("<tr>" + "<td></td>".repeat(cells) + "</tr>").repeat(rows);
};

function tableFill() {
  let fillFrom = CurrentYear;
  let td = document.querySelectorAll('#my-table td');

  for( let i = 0; i < td.length; i++ ) {
        td[i].innerHTML = "<a href = '/selected_year'>"+fillFrom+"</a>";
        fillFrom--;
    if( fillFrom < StartYear ) break;
  }
};


Есть ХТМЛ, внутри которого я пытаюсь вызвать этот файл:
<table class="my-table">
    <script src="../static/js/get_all_years_table.js">
    </script>
</table>


Это чудо не работает. Допускаю, потому что несколько функций.
Подскажите, как быть?
Codepen:
https://codepen.io/sunsexsurf/pen/LYGPPrm

UPD:

конечным решеним стало:
let years__block = document.querySelector('.years__block')

for(let i = new Date().getFullYear(); i >= 1992; i--){
  let div = document.createElement('div');
  div.className = "years__block__item";
  div.insertAdjacentHTML('afterbegin', '<a href = "/current_year">'+i+'</a>')
  years__block.append(div);
}


это более динамичный вариант, чем таблица и InnerHTML
  • Вопрос задан
  • 98 просмотров
Решения вопроса 1
ArsenyMatytsyn
@ArsenyMatytsyn Куратор тега JavaScript
Руководитель frontend направления, предприниматель
Тебе Codepen же в консоли и отвечает, в чем причина.

1. Переменные не были объявлены должным образом.
2. Ты пытался словить class, как ID

https://codepen.io/i-am-studio_ru/pen/OJMLLaK
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
fomenkogregory
@fomenkogregory
Юниор софтварный инженер
А в чем сакральный смысл вызова скрипта прямо внутри таблицы? Не уверен, но думаю проблема в innterHTML.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы