首页 > 解决方案 > 根据条件在jsp forloop中隐藏div标签

问题描述

我正在处理jsp for loops。我有一个要求,我循环列表并显示每次迭代的数据。我有带有类名的html div标签来显示每次迭代的所有数据。但是,如果在该循环中满足其中一个条件,我不应该显示该特定数据。当我试图通过 .className.hide() 隐藏时,它隐藏了之前迭代中的所有 div 数据。示例代码`

<s:iterator value="dispDomainList" var="curDomain">
<c:choose>
<c:when test="${dFlags.AFlag == 'false'}">
<script type="text/javascript">
$(document).ready(function() {
$('.pClass).hide();
});
</c:when>
</c:choose>

<c:choose>
<c:when test="${dFlags.BFlag == 'false'}">
<script type="text/javascript">
$(document).ready(function() {
$('.pClass).hide();
});
</c:when>
</c:choose>
<div class="col-lg-12 pClass>
DATA HERE 
</div>
</s:iterator>

`

如果我的 dFlags.AFlag 为真,那么它应该显示数据。现在,如果 dFlags.BFlag 为假,它也会从 dFlags.AFlag 条件中隐藏整个数据。帮帮我。

标签: javahtmljsp

解决方案


$('.pClass).hide();  

将隐藏您希望显示数据的整个 div。由于您已经使用 JSTL 标记,因此您实际上并不需要 jQuery 来隐藏/显示循环中的数据。只需使用

<c:if test="${dFlags.AFlag == 'true'}">
<!-- display data -->
</c:if>
<c:if test="${dFlags.BFlag == 'false'}">
<!-- do nothing -->
</c:if>

推荐阅读