Javascript 如果所有的孩子都得到了类,如何向家长添加类?

Javascript 如果所有的孩子都得到了类,如何向家长添加类?,javascript,jquery,Javascript,Jquery,我想在所有子级都有类隐藏时将类添加到最近的父级。 在这种情况下,当具有类匹配属性的所有子元素也获得了类隐藏时,它应该将类隐藏添加到父比较组行 我尝试了以下方法,但没有成功,因为在这种情况下,它将向所有比较组行元素添加hide类,即使不是所有子元素都得到了类hide 它应该只将其添加到主父级,因为页面上有很多这样的元素 $。比较组行。属性行。匹配-attribute.eachfunction{ 如果$this.hasglass'hide' $this.closest'。比较组行。'addClas

我想在所有子级都有类隐藏时将类添加到最近的父级。 在这种情况下,当具有类匹配属性的所有子元素也获得了类隐藏时,它应该将类隐藏添加到父比较组行

我尝试了以下方法,但没有成功,因为在这种情况下,它将向所有比较组行元素添加hide类,即使不是所有子元素都得到了类hide

它应该只将其添加到主父级,因为页面上有很多这样的元素

$。比较组行。属性行。匹配-attribute.eachfunction{ 如果$this.hasglass'hide' $this.closest'。比较组行。'addClass'hide'; 其他的 $this.closest'.比较组行'.删除类'hide'; }; 项目1 项目1 值1 值1 项目1 值1 值1 项目1 值1 值1 项目1 值1 值1 项目2 项目1 值1 值1 项目1 值1 价值2 项目1 值1 价值2 项目1 值1 值1
您只需检查所有子项的长度是否与类的所有子项的长度相同即可轻松完成此操作。同时隐藏或不隐藏。如果是,则将该类添加到父类,否则将其删除

$(".compare-group-row").each(function() {
  if($('.attribute-rows .matching-attribute.hide', this).length === $('.attribute-rows .matching-attribute', this).length)
    $(this).addClass('hide');
  else
    $(this).removeClass('hide');
});
演示:

$.compare-group-row.eachfunction{ 如果$'.attribute rows.matching attribute.hide',this.length===$'.attribute rows.matching attribute',this.length $this.addClass'hide'; 其他的 $this.removeClass'hide'; }; .比较组行{ 填充:5px;边框:1px纯红; 利润率:5px8px; } .compare-group-row.hide{ 背景色:CCC; } 项目1 项目1 值1 值1 项目1 值1 值1 项目1 值1 值1 项目1 值1 值1 项目2 项目1 值1 值1 项目1 值1 价值2 项目1 值1 价值2 项目1 值1 值1
检查所有子类的长度,并将其与所有匹配的隐藏类进行比较。如果长度相同,则添加隐藏类

$.parent.eachfunction{ 如果$this.children.length==$this.find'.hide'.length{ $this.addClass'hideAll' } }; 希德尔先生{ 显示:无; } 这不应该是可见的 这不应该是可见的 这不应该是可见的 这应该是可见的 这应该是可见的 这应该是可见的
当然,它不是这样工作的,因为您要根据当前子级的内容多次在父级上添加或删除类。因此,最终结果只取决于您循环的最后一个孩子。您需要使用一个标记,在循环子对象时根据子对象的状态相应地设置该标记,然后在循环子对象后根据该标记显示或隐藏父对象;或者你让它变得简单一点,数一数总共有多少个孩子,有多少人上过那门课——然后简单地根据这两个数字是否匹配来计算结果。很高兴这有帮助!