如果包括特定的类,则将类添加到父类

时间:2018-10-26 09:04:31

标签: javascript jquery html

如果dl中包含 .option-not-available ,我只想向父div( .main )添加一个类。

我尝试过这种方式,但是没有将类添加到父级。请在下面看看。

<div class="main">
 <dl>
   <dt>Coffee</dt>
   <dd class="option-not-available">Black hot drink</dd>
  </dl>
<div>

if ($('dd').hasClass('option-not-available')) {
   $(this).parent().addClass('active');
}

我在这里想念什么?

2 个答案:

答案 0 :(得分:4)

请注意,this不是对dd语句中if元素的引用,parent()的{​​{1}}是{{1} },因此逻辑并不完全正确。

最简单的方法是通过dd类选择dl,然后找到父dd并在其上应用.option-not-available

.main
.active
$('dd.option-not-available').closest('.main').addClass('active');

答案 1 :(得分:0)

您可以将类名添加到选择器:

$(document).ready(function() {
    $('dd.option-not-available').each(function(){
         $(this).closest('div.main').addClass('active');     
    });
});
.active {
 color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="main">
  <dl>
    <dt>Coffee</dt>
    <dd class="option-not-available">Black hot drink</dd>
  </dl>
<div>