仅在类由strong
左括号和右括号中的li
元素组成的情况下,我才尝试将其添加到列表元素。我觉得我已经很接近了,但是我缺少一些东西。
这是到目前为止我得到的代码:
$('.section-header__subtext ul li').each(function() {
if ($(this).is('strong')) {
$(this).addClass('selected');
}
});
谢谢!
答案 0 :(得分:7)
由于li
永远不会是strong
,因此$(this).is('strong')
将始终是false
,因此CSS类不会添加到元素中。
您可以使用:has()
selector
选择包含至少一个与指定选择器匹配的元素的元素。
$('.section-header__subtext ul li:has(strong)').addClass('selected');
$('.section-header__subtext ul li:has(strong)').addClass('selected');
.selected {
background-color: red;
}
<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>
答案 1 :(得分:0)
我认为这就是您要寻找的。 jQuery find()搜索给定的元素。 .length部分将返回找到的元素数量。
$('.section-header__subtext ul li').each(function() {
if ($(this).find('strong').length > 0) {
$(this).addClass('selected');
}
});
答案 2 :(得分:0)
$('.section-header__subtext ul li').each(function() {
if ($(this).find('strong').length > 0) {
$(this).addClass('selected');
}
});
使用find()方法搜索另一个元素内的元素。