Внешний файл JS не запускается

У меня возникли проблемы с запуском моего внешнего JS-файла, когда я запускаю его с помощью события onclick.

Файл JS находится в том же каталоге, что и файл html.

Вот html:

<head>
  <script src='request.js'></script>
</head>

<h1>Requests</h1>

<table>
  <thead>
    <tr>
      <th>Artist</th>
      <th>Title</th>
      <th>Votecount</th>
      <th>Vote for Song</th>
      <th colspan = "3"></th>
    </tr>
  </thead>

  <tbody>
    <% @requests.each do |request| %>
      <tr>
        <td><%= request.artist %></td>
        <td><%= request.title %></td>
        <td class = "voteCount"><%= request.voteCount %></td>
        <td><button onclick = "upVote()">Vote</button></td>
      </tr>
    <% end %>
  </tbody>
</table>

Вот что в моем JS-файле:

function upVote() {
        alert("firing trigger");
        var count = document.getElementsByClassName("voteCount")[0].innerHTML;
        count = parseInt(count);
        count = count + 1;
        count = count.toString();
        document.getElementsByClassName("voteCount")[0].innerHTML = count;
  }

Вот мой список каталогов: Внешний файл JS не запускается

🤔 А знаете ли вы, что...
JavaScript можно использовать для создания видеоигр, как 2D, так и 3D, с использованием библиотеки Three.js.


195
2

Ответы:

Это происходит потому, что код выполняется до того, как будет сгенерирован DOM. Попробуйте переместить <script src='request.js'></script> в конец <body>

<body>

<h1>Requests</h1>

<table>
  ...
  ...
</table>
<script src='request.js'></script>
</body>

В Rails есть папка с ресурсами, в которой должны храниться внешние файлы JS.

app/assets/javascripts