我现在的输出是将一列叠加在另一列之上。如何获得第一列旁边的第二列,而不是它下面的第二列?
edit1:添加了HTML输出 edit2:好的,详细说明,do循环是在数据散列上运行的 {site1 => 1,site2 => 1,site3 => 4}它就是这样的。
我想输出:
sites :: data
site1 :: 3
site2 :: 2
site3 :: 5
<table>
<tr>
<th>>7days</th>
<th><7days</th>
</tr>
<tr>
<% @ls7days.values.each do |ls7day| %>
<td><%= ls7day %></td>
</tr>
<%end%>
<tr>
<% @gt7days.values.each do |gt7day| %>
<td><%= gt7day %></td>
</tr>
<%end%>
</table>
HTML输出
<table>
<tr>
<th>>7days</th>
<th>>7days</th
</tr>
<td>53</td>
</tr>
<td>13</td>
</tr>
<td>49</td>
</tr>
<td>8</td>
</tr>
<td>64</td>
</tr>
</table>
答案 0 :(得分:1)
好吧,好像你的原始代码中仍然存在一些格式错误,所以让我们从纠正错误开始。
<table>
<tr>
<th>>7days</th>
<th><7days</th>
</tr>
<% @ls7days.values.each do |ls7day| %>
<tr>
<td><%= ls7day %></td>
</tr>
<%end%>
<% @gt7days.values.each do |gt7day| %>
<tr>
<td><%= gt7day %></td>
</tr>
<%end%>
</table>
请注意,我替换了&gt;和&lt;在使用>
和<
的情况下,以及在每个内容中移动开放的内容。
现在我们已经修复了格式化错误,我们对表的实际结构有一些问题。我认为这一步需要解释表的不同组件的用途。
首先,您拥有<table></table>
标签,这些标签非常漂亮
直接向前发出信号。
接下来,您拥有<tr></tr>
标记,这些标记代表了行的行
表。这些标记称为表格行标记。
最后,您拥有<td></td>
标签,这些标签代表了该网格的细胞
表。这些标签称为表数据标签,可能是
最困惑的一部分表。它们代表个人数据
单元格,以某种方式表示您的列。所有表行
表应具有相同数量的表数据。
从技术上讲,还有一些其他标签,例如<th></th>
标签,但这些可以有效地被认为是<td><h3></h3></td>
。
它们几乎与表格数据不同。
回顾表的结构,我们看到第一个表行中有两个表数据。然后每个表格行只有一个td。因此,您的表的行为是不稳定的,并且可能从一个浏览器到另一个浏览器的显示不同。为了解决这个问题,您只需要向每个表行添加另一个表数据。
我的猜测,鉴于您的意见,您实际上是在尝试使用每个语句来生成表的列。由于表的结构方式,这并不像看起来那么简单,但让我们试一试。
<table>
<tr>
<td><h4>>7days</h4></td>
<td><h4><7days</h4></td>
</tr>
<% if @ls7days.values.size > @gt7days.values.size %>
<% @ls7days.values.each_with_index do |ls7day, index| %>
<tr>
<td><%= @gt7days.values[index] unless index >= @gt7days.size %></td>
<td><%= ls7day %></td>
</tr>
<% end %>
<% else %>
<% @gt7days.values.each_with_index do |gt7day, index| %>
<tr>
<td><%= gt7day %></td>
<td><%= @ls7days.values[index] unless index >= @ls7days.size %></td>
</tr>
<% end %>
<% end %>
</table>
如您所见,我们现在迭代两个数组中较大的一个(gt7days和lt7days)。正如我们所做的那样,我们将其值放入新表格行中的表格数据中。但是,我们还将较小数组中的值放入同一表行中的另一个表数据中。哪个应该工作得很好,除了可能(甚至可能)两个数组的大小不同。因此,我们通过说我们将从较小的数组中获取值来处理它,除非我们想要的值不存在(我们知道它不会因为它在数组中的位置超过数组大小)。
它可能不是最优雅的解决方案,但我认为它会如你所愿地发挥作用。
答案 1 :(得分:0)
您的标签可能有误。
应该是这样的:
<th>7days</th>
<th>7days</th>
希望我能提供帮助。
答案 2 :(得分:0)
我认为你在此之后......我们是否错过了&lt; td&gt;对于第2行和第3行的第一列?
<table>
<tr>
<th>7days</th>
<th>7days</th>
</tr>
<tr>
<% @ls7days.values.each do |ls7day| %>
<td><%= ls7day %></td>
</tr>
<%end%>
<tr>
<% @gt7days.values.each do |gt7day| %>
<td><%= gt7day %></td>
</tr>
<%end%>
</table>
答案 3 :(得分:0)
不要将它们放在单独的表格行中。使用单独的列。
每个标记都是下一行的下一行。每个标记都是前一个标记旁边的单独列。如果您希望彼此相邻的值,请将它们放在相邻的标记中。