首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从Rails视图执行getElementById操作

如何从Rails视图执行getElementById操作
EN

Stack Overflow用户
提问于 2019-02-23 12:42:16
回答 1查看 1.3K关注 0票数 0

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

代码语言:javascript
复制
<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:

代码语言:javascript
复制
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";
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-23 15:30:46

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

代码语言:javascript
复制
<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;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54838303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档