我已经看到这个问题有很多方面的答案,但是我的项目中没有一个答案可以解决。我的应用程序在几个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
});
答案 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>
无论出于何种原因,它都以这种格式工作,但不是第一种格式版本。字面上完全相同的代码,只是间隔不同。如果有一个更聪明的方法可以解决这个问题,我全都耳朵。看起来有点奇怪,它应该以这种方式工作。