如果<div class="widget-content">
具有特定类.widget-content li a
,请尝试将类添加到父div .ifthis
。
HTML:
<div class="widget-content">
<ul>
<li><a href="https://twitter.com/slycolor" class="ifthis"> <b>This Text Should Red</b></a>
</li>
<li><a href="https://www.facebook.com/slycolor" class="ifthis"> <b>This Text Should Red</b></a>
</li>
</ul>
</div>
我试过这个:
$('.widget-content li a').has('.ifthis').parent('.widget-content').addClass('social-sidebar');
但无法正常工作,请参阅此示例fiddle。
答案 0 :(得分:4)
选择具有课程ifthis
的孩子,然后使用 parents()
或 closest()
$('.widget-content li a.ifthis').parents('.widget-content').addClass('social-sidebar');
OR
$('.widget-content li a.ifthis').closest('.widget-content').addClass('social-sidebar');
您的代码无效,因为
答案 1 :(得分:3)
使用此:
$('a.ifthis').closest('div.widget-content').addClass('social-sidebar');
或者:
$('.ifthis').closest('.widget-content').addClass('social-sidebar');
//if only a elements have .ifthis and only div elements have .widget-content
或者:
$('.widget-content:has(.ifthis)').addClass('social-sidebar');
参考:https://api.jquery.com/closest/
https://api.jquery.com/has-selector/
.closest(selector) - 返回:jQuery
描述:对于集合中的每个元素,通过测试元素本身并遍历DOM树中的祖先来获取与选择器匹配的第一个元素。
:has()选择器
jQuery(“:has(selector)”) - 返回:jQuery
描述:选择包含至少一个与指定选择器匹配的元素的元素。