3

所以我有一些看起来像这样的视图代码:

<div class="box-content">
    <table class="table table-properties">
        <tbody>             
            <%= render :partial => 'property', collection: @search.listings, as: :listing %>
        </tbody>
    </table>                                
</div>

在那_property.html.erb,我有这个:

<tr>
    <td class="span2">
        <%= link_to listing_path(listing), :class => "thumbnail thumb2" do %>
            <%= image_tag "room_1.jpg", :alt => "Lucas" %>
        <% end %>
    </td>
    <td>
        <h2><%= link_to listing.headline, listing_path(listing) %></h2>
        <h5><%= listing.listing_type.name if listing.listing_type "#{listing.neighborhood.name.capitalize}" %></h5>
        <h5>Maintenance <%= number_to_currency(listing.maintenance) %></h5>
    </td>
    <td class="span1">
        <h2 class="price"><%= number_to_currency(listing.price)%></h2>
        <h5><%= "#{listing.num_bedrooms} bed, #{listing.num_bathrooms} bath" %></h5>
    </td>
</tr>

基本上,我想准确地生成上面的代码,对于每一行,唯一的区别是我希望每个第二行(即所有偶数行)都有class=striped..ie <tr class=striped>

关于如何以干燥的方式做到这一点的想法?

4

4 回答 4

11

您是否尝试过使用cycleand current_cycle

http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-cycle

<tr class="<%= cycle('odd', 'even') -%>">
  <!-- etc -->
</tr>

这将您的类替换为oddandeven并且恕我直言,在呈现集合时也应该工作。如果您多次需要实际循环的值,您可以使用它current_cycle(因为多次调用cycle会弄乱您的循环,除非您想要这样做)。

于 2013-02-15T10:57:11.843 回答
1

:nth-child()使用css选择器不是更好吗?http://www.w3schools.com/cssref/sel_nth-child.asp

于 2013-02-15T11:00:18.370 回答
0

你可以尝试这样的事情:

 <tr class="<%=cycle("odd", "even") %>">
    <td class="span2">
        <%= link_to listing_path(listing), :class => "thumbnail thumb2" do %>
            <%= image_tag "room_1.jpg", :alt => "Lucas" %>
        <% end %>
    </td>
    <td>
        <h2><%= link_to listing.headline, listing_path(listing) %></h2>
        <h5><%= listing.listing_type.name if listing.listing_type "#{listing.neighborhood.name.capitalize}" %></h5>
        <h5>Maintenance <%= number_to_currency(listing.maintenance) %></h5>
    </td>
    <td class="span1">
        <h2 class="price"><%= number_to_currency(listing.price)%></h2>
        <h5><%= "#{listing.num_bedrooms} bed, #{listing.num_bathrooms} bath" %></h5>
    </td>
 </tr>
于 2013-02-15T10:58:19.253 回答
0

用jquery做到这一点:

$(document).ready(function(){
   $("table.table-properties > tbody > tr:odd").addClass("odd");
   $("table.table-properties > tbody > tr:not(.odd)").addClass("even");  
});
于 2013-02-15T11:05:45.057 回答