Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当具有特定类时,jquery在两个div之间隐藏div行_Javascript_Jquery_Html - Fatal编程技术网

Javascript 当具有特定类时,jquery在两个div之间隐藏div行

Javascript 当具有特定类时,jquery在两个div之间隐藏div行,javascript,jquery,html,Javascript,Jquery,Html,我正在尝试操作上面的HTML代码示例。这是实际HTML代码的简化版本 <div id="CntWrapper_CntMain_ssm_ctl00_ctl01" class="matrix"> <div class="CollapseGroup1"></div> <div class="row"> <div class="cell_24">&nbsp;</div> </div> &l

我正在尝试操作上面的HTML代码示例。这是实际HTML代码的简化版本

<div id="CntWrapper_CntMain_ssm_ctl00_ctl01" class="matrix">
  <div class="CollapseGroup1"></div>
  <div class="row">
    <div class="cell_24">&nbsp;</div>
  </div>
  <div class="row">
    <div class="cell_24">
      <span class="label-passive">text</span>
    </div>
  </div>
  <div class="CollapseGroupClose1"></div>
</div>
此脚本隐藏了名为collapsegroup和collapsegroupclose的两个div之间类为“row”的所有div

但是,我只想在任何一行包含至少一个类为“label passive”的span时,隐藏类为“Row”的div元素

<script type="text/javascript">
  $(document).ready(function() {
    $('.CollapseGroup1').nextUntil('.CollapseGroupClose1',').css( "display", "none" );
  });
</script>
当存在一个带有被动标签的范围时,仅仅隐藏任何行div是不够的。在这些collapsegroup div之外,可能有一些行包含“label passive”span类,我不想隐藏这些行


我想隐藏两个collapsegroup标记之间的所有行,即使其中只有一行实际上有一个子span元素,其类为“label passive”。

因此,在阅读您的问题一次之后。。两次特里斯。。我想你想要这个:
<script type="text/javascript">
  $(document).ready(function() {
    $('.CollapseGroup1').nextUntil('.CollapseGroupClose1',').css( "display", "none" );
  });
</script>
专业提示:尽量让你的问题尽可能简单,必要时使用伪代码

<script type="text/javascript">
  $(document).ready(function() {
    $('.CollapseGroup1').nextUntil('.CollapseGroupClose1','div[.label-passive]').css( "display", "none" );
  });
</script>
如果这不完全是你想要的,请留下评论,我将尝试改进答案

编辑:OP改进了他的问题,改进了答案:

也许这将进一步帮助您:

$('.label-passive').parents('._row').hide();

您可以简单地尝试以下方法:

$('.CollapseGroup1').each(function() {
    if ($(this).find(".label-passive").length != 0)
        $(this).hide();
});
尝试最近的:

$function{ $'span.label passive'。最近的'div.row'。隐藏; }; 文本
你的问题太长了,没有人会费心把它全部读一遍。。。。。考虑把它削减一半,并提供演示页,特别是切出任何已经工作。我们应该能够从一开始就很快理解你的问题是什么,我已经重写了它。这个用例确实需要一些解释,所以还有一些文本,但我可能已经把问题缩短了一半。我希望这能让它更具可读性。遗憾的是,我没有,我再次重写了我的文章,只使用了非常简单的HTML代码示例。无可否认,现在它更具可读性。我想隐藏“Collapsegroup”和“Collapsegroupclose”类的两个div之间的任何和所有行div,这取决于这些行中是否只有一行具有“label passive”类的跨度。@MaartendeVries没问题,我检查了您的编辑,并改进了我的答案。请让我知道这是否更好。你的答案也不起作用。这里假设我要编辑的div标记位于collapsegroup节点内。事实并非如此。我需要两个div之间的所有div,包括collapsegroup和collapsegroup close。在HTML示例中,这意味着我希望隐藏类为“row”的两个div,因为这两个div中的一个在类为“label passive”的范围内
$('span.label-passive').closest('div.row').hide();