使用jQuery时如何识别循环中的哈希元素



我有以下哈希(@messages),该哈希(@messages)由发件人分组/来自:

{'Tom'=>[#<ShortMessage id: 16, content: "ABC", created_at: "2014-01-28 16:35:33", from: 'Tom'>, #<ShortMessage id: 15, content: "DEF", created_at: "2014-01-28 13:11:20", from: 'Tom'>], 'Jerry'=>[#<ShortMessage id: 5, content: "XYZ", created_at: "2014-01-22 09:48:52", from: 'Jerry'>]}

在我的视图中,我循环循环,以打印出发件人名称及其一组消息。我还为每组消息提供了一个表格,用户可以在其中回复该特定的发送者

<% @messages.each do |sender, message| %>
 <p><%= sender %></p>
 <% message.each do |msg| %>
  <p><%= msg.content %></p>
 <% end %>
// reply form
 <%= form_for @message, remote: true do |f| %>
  <%= f.hidden_field :from, value: from %>
  <%= f.text_field :content %>
  <%= f.submit "Reply" %>
 <% end %>
<% end %>

我正在使用ajax和jquery提交表格,并将新的答复文本添加到一组消息的末尾,因此页面不必每次发送回复时都需要刷新

我如何参考哪一组消息将新答复添加到循环循环时?

示例如果我想回复汤姆并填写他的答复表格,我该如何附加到那组消息而不是杰里的消息?

我失败的jQuery看起来像这样:

<script>
 $('#container').on('ajax:success', function(event, data){
 if (data.succ) {
  // handle your success somehow, like show a new field
 } else { 
  // something went wrong
 }
})
</script>

我可能会将 ajax:success绑定到形式本身而不是 #container(不在问题中)。那么t就像

一样简单
$(this).before(...)

最新更新