使用dom_id删除带有jquery的表行.remove()

时间:2012-04-04 20:45:42

标签: jquery ruby-on-rails

我有以下代码来生成一个表,其中列出了一组产品的品牌/型号/子模型/样式。我想在单击destroy按钮时从表中删除整行,但是我无法使用dom_id和jquery来了解如何使用它.remove()

到目前为止,我在$('#<%= dom_id(@brand) %>').remove();上尝试了一些变体但没有成功。谢谢!

<div class = "span8">
<table class="table table-striped" id="devices">
  <thead>
    <tr>
      <th>Brand</th>
      <th>Model</th>
      <th>Submodel</th>
      <th>Style</th>
      <th></th>
    </tr>
  </thead>
  <tbody>
    <% @brands.each do |brand| %>
      <tr>
        <td><%= link_to brand.name, brand_path(brand) %></td>
        <% @model1 = Model.find_by_brand_id(brand.id) %>
        <td><%= @model1.name %></td>
        <% @submodel1 = Submodel.find_by_model_id(@model1.id) %>
        <td><%= @submodel1.name %></td>
        <% @style1 = Style.find_by_submodel_id(@submodel1.id) %>
        <td><%= @style1.name %></td>
        <td style = "border:none;">
          <%= link_to 'Edit', edit_brand_path(brand), :class => 'btn btn-mini' %>
          <%= link_to 'Destroy', brand_path(brand), :method => :delete, :remote=>true, :confirm => 'Are you sure?', :class => 'btn btn-mini btn-danger' %>
        </td>
      </tr>
    <% end %>


  </tbody>
</table>
</div>

2 个答案:

答案 0 :(得分:4)

$('#blah')语法表示一个ID选择器,它根据id属性选择一个元素。从您提供的代码中,您的任何表行(<tr>元素)都没有id属性,所以我不确定您期望发生什么。我怀疑你想要的是:

<tr id="<%= dom_id(@brand) %>">

然后$('#<%= dom_id(@brand) %>').remove();应该有用。

答案 1 :(得分:0)

我假设销毁按钮位于tr内部,那么你可以执行以下操作,

//$(this) is destroy button assuming it is inside the same tr
$(this).closest('tr').remove();