如果存在两个单独的子div,如何向父类添加一个类

时间:2016-06-25 17:43:16

标签: javascript jquery jquery-selectors

只有在存在两个单独的子div时,如何向父类添加一个类?

如果孩子中存在两个类

,则此处的代码有效
$('.class1.class2').parents().addClass('newclass');

<div class="parentdiv">
<div class="class1 class2">        
</div>

我只是在class1和class2是子项

时才尝试将类添加到parentdiv
<div class="parentdiv">
<div class="class1">
</div>
<div class="someother">
</div>
<div class="class2">    
</div>

2 个答案:

答案 0 :(得分:1)

您可以使用:has()与选择器.class1 ~ .class2, .class2 ~ .class 1一起选择.parentdiv元素,其中.class1.class2是子元素是{{1}的一般兄弟分别是{或.class2。如果要求仅在.class1后跟.parentdiv时选择.class1,您可以使用选择器.class2

.class1 ~ .class2
$(".parentdiv:has(.class1 ~ .class2, .class2 ~ .class 1)")
.addClass("selected");
.selected {
  color:olive;
}

答案 1 :(得分:0)

  

使用.filter仅选择满足callback

中提供的条件的元素

var filtered = $('.parentdiv').filter(function() {
  return $(this).find('.class1').length > 0 && $(this).find('.class2').length > 0;
});
filtered.addClass('newclass')
.newclass {
  border: 2px black dotted;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div class="parentdiv">
  <div class="class1">
    Hello class1
  </div>
  <div class="someother">
  </div>
  <div class="class2">
    Hello class2
  </div>
</div>