Rails如何在Javascript中获取表中每个对象的值?

Posted

技术标签:

【中文标题】Rails如何在Javascript中获取表中每个对象的值?【英文标题】:Rails how to Get value in Javascript of each object in table? 【发布时间】:2018-06-03 18:01:10 【问题描述】:

这是我的桌子:

<tbody>

<% @productos.each do |producto| %>
  <tr>
    <td><%= producto.codigo %></td>
    <td><%= producto.descripcion %></td>
    <td><%= producto.stock %></td>
   <td><%=  button_to '+', "#", method: :get,class: 'btn btn-info btn-sm btn_add' %></td>

  </tr>
<% end %>

</tbody>

点击按钮我想得到 |producto| 的值(每一行)在 javascript 中并发送到同一视图中的其他表或正确的方法是从 td 获取值?示例:

<td><%= producto.codigo %></td> //in this case how i get the value of this td?

使用 Javascript 或 Jquery。谢谢

【问题讨论】:

显示按钮点击处理程序 最好的方法是将所有必填字段作为data-*标签添加到每个&lt;tr&gt; 【参考方案1】:

首先在每个 td 中添加 id

<tbody>

<% @productos.each do |producto| %>
  <tr>
    <td id="code-<%= producto.codigo %>"><%= producto.codigo %></td>
    <td id="des-<%= producto.codigo %>"><%= producto.descripcion %></td>
    <td id="stock-<%= producto.codigo %>"><%= producto.stock %></td>
   <td><%=  button_to '+', "#", method: :get,class: 'btn btn-info btn-sm btn_add' %></td>
  </tr>
<% end %>

</tbody>

现在在你的按钮中添加一个属性data-id 像这样

<button class="btn btn-info btn-sm btn_add" data-id="<%= producto.codigo %>" type="button">Click</button>//I don't know about Rails so do this code in your language.

现在下面给出 jQuery...

<script>
    $(document).on('click','btn_add',function()
        id = $(this).data('id'); //get the clicked button's id
        var code = $('#code-'+id).html(); //get the code of that row
        var des = $('#des-'+id).html();  //get the description of that row
        var stock = $('#stock-'+id).html();  //get the stock of that row
        alert('Code - '+code+'<br> Description - '+des+'<br>Stock - '+stock);
    );
</script>

【讨论】:

【参考方案2】:

1-在点击事件的js代码块中传递你想要的所有变量

<td><%=  button_to '+', "#", method: :get,class: 'btn btn-info btn-sm btn_add', :onclick => "get_current_producto(this, '<%=producto.codigo%>', '<%=producto.descripcion%>', '<%=producto.stock%>');"  %></td>

2- 在这里获取所有变量并

<script type="text/javascript>
        function get_current_producto(elm, codigo,descripcion, stock )
         //code goes here
         //console.log(codigo);
         alert(descripcion);
       ;
</script>

这里的elm 是调用点击事件的button 元素,您可以使用elm 获取该按钮元素的id 或类

【讨论】:

以上是关于Rails如何在Javascript中获取表中每个对象的值?的主要内容,如果未能解决你的问题,请参考以下文章

如何从多个表中获取数据并将它们与erb中的每个表一起转换

如何根据搜索关键字 rails 从 2 个表中获取数据

Rails:为循环的每次迭代从表中获取数据

如何在Rails 5中获取具有匹配ID的连接表中的记录数

【Rails】如何用erb中的each转一个数组中的hash

如何在 css 类名中使用 javascript 变量并在 Rails 中通过 jquery 获取 css 颜色名