我正在尝试访问表中的 voteC-6ren">
gpt4 book ai didi

javascript - 我如何从 Rails View 中 getElementById

转载 作者:行者123 更新时间:2023-12-01 01:15:05 24 4
gpt4 key购买 nike

我有一个包含以下 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com