空的时候隐藏动态填充的Div - Rails 4

时间:2014-11-29 00:29:59

标签: javascript jquery css ruby-on-rails

我已经看到这个问题有很多方面的答案,但是我的项目中没有一个答案可以解决。我的应用程序在几个div中显示用户以前的选择。在应用程序开始时,没有填充任何div。当用户回答问题时,他/她之前的每个答案都以div显示,直到用户到达结果页面。

问题是,我无法弄清楚如何隐藏div,直到它们被填充。

我以前的尝试主要集中在jQuery的$('.div:empty').hide,没有运气。我知道我做错了什么?

查看/布局/ _user_choices.html.erb

  <div class = "default_test" id = "first_bar" >
    <% if @category != nil %>
            <p><%= @category.title %></p>
        <% else %>
            <!-- the div remains empty -->
    <% end %>
 </div>

资产/ Javascript角/ application.js中:

$(document).ready(function() {
    $('.default_test:empty').hide();  // this does not work
});

2 个答案:

答案 0 :(得分:1)

在查看有关:empty的此页面时,似乎这些都不匹配:空

带空格的DIV

<div> </div> 

在另一条线上关闭的DIV:

<div>
  <!-- test -->
</div>

<div>
</div>

以下是您希望div使用的内容:空

<div></div>

<div><!-- test --></div>

也许尝试这个,消除行返回和额外的空格:

<div class = "default_test" id = "first_bar" ><% if @category != nil %><p><%= @category.title %></p><% else %><!-- the div remains empty --><% end %></div>

答案 1 :(得分:0)

找出答案 - 看起来很荒谬。拿这个:

<div class = "default_test" id = "first_bar" >
    <% if @category != nil %>
           <p><%= @category.title %></p>
    <% else %>
           <!-- the div remains empty -->
    <% end %>
</div>

...并消除所有空格并将所有内容放在一行中。

<div class = "default_test" id = "first_bar"><% if @category != nil %><p><%= @category.title %></p><% else %><!-- the div remains empty --><% end %></div>

无论出于何种原因,它都以这种格式工作,但不是第一种格式版本。字面上完全相同的代码,只是间隔不同。如果有一个更聪明的方法可以解决这个问题,我全都耳朵。看起来有点奇怪,它应该以这种方式工作。