工作jQwery代码不在条件内工作

我想设置一个元素内容,以防它是空的。
html.erb代码如下:

 
<ol id="comments_micropost-">

我想要设置内容的元素是

。 当微博尚未发表评论时,其内容为空。
我在create.js.erb使用javascript处理注释的创建操作:我写了两行代码,这取决于micropost.comments是否为nil或者它不是nil:

案例1:micropost还没有评论( micropost.comments.any?是假的):

 $('#micropost-').find('.comments-section').html(""); 

案例2:micropost已经发表评论( micropost.comments.any?是真的):

 var comments = $('ol#comments_micropost-'); comments.append(''); 

两个代码在单独使用时都有效。 但是,在以下条件中与案例2一起插入时,案例1的代码不起作用:

 if (comments == null) { $('#micropost-').find('.comments-section').html(""); } else { comments.append(''); }; 

我不明白为什么if (comments == null)代码没有被执行。 我也试过if (comments == undefined)if (!comments)没有任何改进。
相反,条件的else部分已成功执行。

JavaScript将不存在的DOM元素视为length = 0的对象。 可以通过使用Web浏览器控制台,编写DOM元素并检查控制台输出来validation这一点。 选择没有评论的微博(比如说id = 304 micropost.comments.any? ): micropost.comments.any? 将是错误的, div.comments-section内的div.comments-section都不会出现在文档中。 打开控制台并在提示符下编写以下代码:

 $('ol#comments_micropost-304'); 

输出将是:

  1. []在基于Chromium的浏览器中
  2. Object { length: 0, prevObject: Object, context: HTMLDocument → 1, selector: "ol#comments_micropost-304" }

原始if语句不起作用,因为该对象不为null且length = 0 。 因此,if语句是: if (comments.length == 0)