我想设置一个元素内容,以防它是空的。
的html.erb
代码如下:工作jQwwery代码不能在条件内工作
<div class="comments-section">
<% if micropost.comments.any? %>
<ol id="comments_micropost-<%= micropost.id %>">
<% micropost.comments.each do |comment| %>
<%= render comment %>
<% end %>
</ol>
<% end %>
</div>
元素我想设置内容为<div class="comments-section">
。当微博尚未发表评论时,其内容为空。
我处理在create.js.erb
的创建与JavaScript注释行动:我写了两行代码,这取决于micropost.comments
是否是零或者不是零:
案例一:微柱还没有评论(micropost.comments.any?
是假的) :
$('#micropost-<%= @micropost.id %>').find('.comments-section').html("<%= escape_javascript(render partial: 'comments/first_comment') %>");
案例2:微柱已经评论(micropost.comments.any?
为true):
var comments = $('ol#comments_micropost-<%= @micropost.id %>');
comments.append('<%= escape_javascript(render partial: @comment) %>');
两者的代码段工作时分开使用。然而,当结合案例2在以下条件插入一组案例1的代码不起作用:
if (comments == null) {
$('#micropost-<%= @micropost.id %>').find('.comments-section').html("<%= escape_javascript(render partial: 'comments/comments') %>");
}
else {
comments.append('<%= escape_javascript(render partial: @comment) %>');
};
为什么当不执行if (comments == null)
的代码,我不明白。我也试过用if (comments == undefined)
和if (!comments)
没有任何改进。
而是,条件的else
部分已成功执行。
对于'comments.blank?'或'comments =='''也没有改变。是'comments'来自'var comments':我如何表达等于0的长度? – Asarluhi
@Asarluhi如果长度大于0,比可用。如果长度为0,则不可用。 – Vishal
即使'if(comments.length === null)'不起作用。我不知道为什么,上述解决方案之一应该在这一点上起作用。 – Asarluhi