如何从 js.erb 视图中选择这个 div 元素
Posted
技术标签:
【中文标题】如何从 js.erb 视图中选择这个 div 元素【英文标题】:How to select this div element from js.erb view 【发布时间】:2020-01-16 14:43:15 【问题描述】:我正在维护一个 ajax 请求,以在页面加载时获取所有评级。此渲染是在 rails 的 js.erb 视图中完成的。我想编辑 div 的数据速率值,但我不能同时选择它的类和 id。如何从 rails js.erb 视图中选择此 div 并更改此属性?
<div class="col-sm-6 col-md-3">
<div class="thumbnail">
<div class="rating" id="<%= movie.id %>" data-rate-value=0></div>
<%= link_to (image_tag movie.image.url(:medium), class: 'image'), user_movie_path(movie.user, movie) %>
<% if movie.user == current_user %>
<br>
<%= link_to 'Edit', edit_user_movie_path(movie.user, movie), class: 'btn btn-primary' %>
<%= link_to "Remove", user_movie_path(movie.user, movie), method: :delete, data: confirm: "You Sure?" , class: 'btn btn-primary' %>
<% end %>
</div>
</div>
<% end %>
This is my faulty solution
@ratings.each do |rating| %>
$(".rating#<%= rating.movie.id %>").attr("data-rate-value", "<%= rating.score %>");
<% end %>
【问题讨论】:
I cannot select it with the class and id at the same time
这是什么意思?你看到任何错误吗?您是否在浏览器控制台上手动尝试过选择器?仅使用数字作为元素的 ID 听起来并不好,很容易错误地让多个元素具有相同的 ID。使用 movie_#movie.id
之类的东西作为元素的 id。
【参考方案1】:
你应该像这样定义你的 div id:
<div class="rating" id="rating_movie_<%= movie.id %>" data-rate-value=0></div>
并调用选择器
$("#rating_movie_#<%= rating.movie.id %>").attr("data-rate-value", "<%= rating.score %>");
【讨论】:
以上是关于如何从 js.erb 视图中选择这个 div 元素的主要内容,如果未能解决你的问题,请参考以下文章