【问题标题】:Hide only parent class of the child in loop在循环中仅隐藏孩子的父类
【发布时间】:2018-07-20 06:20:26
【问题描述】:

我在 WordPress 中有一个显示帖子的循环。

<div class="parent-div" id="unuqueIdHereForEachBlock">
 <div class="child-1"></div>
 <div class="child-2">
    <div class="sub-child">

    </div>
 </div>
</div>

这个 'parent-div' 处于循环中,每个帖子都会重复 20-30 次。对于某些帖子,子子 div 将没有内容,在这种情况下,我想仅为该特定帖子隐藏 'child-1' div。

jQuery、JavaScript 或 PHP 中的解决方案很好。

希望这是有道理的。

谢谢。

【问题讨论】:

  • 能不能展示一下生成这个内容的代码,还是不生成总比以后删掉好。

标签: javascript php jquery wordpress


【解决方案1】:

您可以尝试关注

$(".parent-div").each((i,e) => {
if(!$(e).find(".child-2 .sub-child").text().trim()) $(e).find(".child-1").hide();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="parent-div" id="unuqueIdHereForEachBlock">
 <div class="child-1">Text 1</div>
 <div class="child-2">
    <div class="sub-child">

    </div>
 </div>
</div>
<div class="parent-div" id="unuqueIdHereForEachBlock">
 <div class="child-1">Text 2</div>
 <div class="child-2">
    <div class="sub-child">
        Some text
    </div>
 </div>
</div>

【讨论】:

  • 您好 Nikhil,您的解决方案有效,但它没有隐藏“子子”div 中没有文本的所有帖子。只有前几个帖子被隐藏了。
  • @SunilPatel - 除非 html 中有其他内容,否则它不应该发生。你能分享失败元素的html吗?
  • 这里是 html 代码的截图 -> imgur.com/a/tArjCUe 这是你的脚本的副本 -> pastebin.com/u3C0EMiB 谢谢。
  • @SunilPatel - 您拥有相同的 id (estate-card) 元素。使用class选择器
  • 尼基尔,你是传奇。有效。为 ID 混淆道歉。
【解决方案2】:

用 jQuery 试试这个,你可以遍历每个父 div 并检查文本。如果文本长度为零,则隐藏子 div

$(function(){
  $(".parent-div").each(function(){
    var text = $(this).find(".child-2 > .sub-child").text();
     if(text.length==0) {
        $(this).find(".child-1").hide();
      }
  });
});

【讨论】:

  • 我想我没有解释清楚。 '.parent-div' 和它的直接子(ren)将在其中包含文本/子节点。仅当 'sub-child' div 中没有文本/子节点时,我才想隐藏 'child-1' div。
  • @SunilPatel,我在阅读您的评论后更新了我的帖子。请检查
  • 嗨@Bhushan,我也尝试了更新代码,但它似乎不起作用。
  • 父元素是动态添加的吗?你能在 jsfiddle 上重新创建这个或代码被剪断吗?
猜你喜欢
  • 2016-12-20
  • 1970-01-01
  • 2014-06-18
  • 1970-01-01
  • 1970-01-01
  • 2022-11-24
  • 2012-08-27
  • 1970-01-01
  • 2014-03-02
相关资源
最近更新 更多