将类添加到包含<strong>标记的<li>元素

fri*_*urd 1 javascript jquery loops jquery-ui

我试图将一个类添加到列表元素,只有它由开始和结束括号中的strong元素组成li.我觉得我很亲密,但我错过了一些东西.

这是我到目前为止的代码:

$('.section-header__subtext ul li').each(function() {      
  if ($(this).is('strong')) {
    $(this).addClass('selected');
  }
});
Run Code Online (Sandbox Code Playgroud)

提前致谢!

Sat*_*pal 7

由于li不能永远strong,因此$(this).is('strong')总是会false,因此CSS类不添加到元素.

你可以使用:has()选择器

选择包含至少一个与指定选择器匹配的元素的元素.

$('.section-header__subtext ul li:has(strong)').addClass('selected');
Run Code Online (Sandbox Code Playgroud)

$('.section-header__subtext ul li:has(strong)').addClass('selected');
Run Code Online (Sandbox Code Playgroud)
.selected {
  background-color: red;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="section-header__subtext">
  <ul>
    <li>1</li>
    <li><strong>2</strong></li>
    <li>3</li>
    <li><strong>4</strong></li>
  </ul>
</div>
Run Code Online (Sandbox Code Playgroud)