javascript - 我如何从 Rails View 中 getElementById

标签 javascript ruby-on-rails

我有一个包含以下 HTML 的 Rails View :

<tbody>
  <% @requests.each do |request| %>
     <tr data-request-id="<%= request.id %>">
       <td id="artist" style="text-align: center"><%= request.artist %></td>
       <td style="text-align: center"><%= request.title %></td>
       <td style="text-align: center" class="voteCount"><%= request.voteCount %></td>
       <td style="text-align: center"><%= button_to 'Vote', request_upvote_path(request.id), remote: true, method: :post, onclick: 'upVote()', class: 'upVote' %></td>
     </tr>
   <% end %>
</tbody>

我正在尝试访问表中的 voteCount 单元格,但我不知道该怎么做。通常在 JS 中我会使用 document.GetElementByIdGetElementBysClassName

我有一个方法,可以在单击按钮时将 voteCount 数字加 1,效果很好,但是这个 JS 函数需要增加正确的请求。

这是当前的 JS:

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

最佳答案

尝试这样的事情。您可以使用rails传递id onclick,并且只需在JavaScript中使用常规的getElementById:

<tbody>
  <% @requests.each do |request| %>
 <tr data-request-id="<%= request.id %>">
   <td id="artist" style="text-align: center"><%= request.artist %></td>
   <td style="text-align: center"><%= request.title %></td>
   <td style="text-align: center" id="voteCount<%= request.id %>"><%= request.voteCount %></td>
   <td style="text-align: center"><%= button_to 'Vote', request_upvote_path(request.id), remote: true, method: :post, onclick: "upVote(#{request.id})", class: 'upVote', id:"voteButton#{request.id}" %></td>
 </tr>
   <% end %>


function upVote(id) {
   var count = document.getElementById("voteCount" + id).innerHTML;
   count = parseInt(count);
   count = count + 1;
   count = count.toString();
   document.getElementById("voteCount" + id).innerHTML = count;
   document.getElementById("voteButton" + id).disabled = true;
}

关于javascript - 我如何从 Rails View 中 getElementById,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54838303/

相关文章:

javascript - 转换 JavaScript 数组,创建表格 View

ruby-on-rails - rails : User logged out after destroying an unrelated object with :remote => true

html - 为什么 erb 模板中的字符串插值失败?

mysql - WEBrick 服务器不断关闭

ruby-on-rails - 如何添加真实性 token ?

javascript - 在 Android 浏览器或 WebView 内部检测

javascript - 按两次转义键即可恢复旧值 - Internet Explorer

ruby-on-rails - HAML:仅当条件为真时才创建容器/包装器元素

Javascript 如果在 x

javascript - 将带有 grunt 的 CORS 请求代理到本地主机