我知道是否必须访问父级为child
的所有父级为parent
的孩子
$('.parent .child')
但是我不知道如何访问班级为
parent
的孩子的班级为child
的父母。我的情况是,我想将所有
lmn
类的div都涂成红色,这些div是abc
类的前一个元素,而.abc
的元素是pqr
类。我的标记变成<div class='lmn'>
Prev of 1
</div>
<div class='abc'>
1 - 1
<div class='xyz'></div>
</div>
<div class='abc'>
1 - 2
<div class='pqr'></div>
</div>
<div class='lmn'>
Prev of 2
</div>
<div class='abc'>
2 - 1
<div class='xyz'></div>
</div>
<div class='abc'>
2 - 2
<div class='pqr'></div>
</div>
和jQuery
$(".pqr").closests('.abc').prevAll(".lmn:first").css("color", "red");
但这只会使第一个div
vlmn
红色,即使两个divs .lmn
都满足我的情况。我是否可以同时使用
$(".pqr").closests('.abc')
和.lmn
替代我想使用的$.each
? 最佳答案
您将定位所有具有.abc
的.pqr
,然后找到上一个元素,并根据类lmn
进行过滤
$('.abc:has(.pqr)').prev('.lmn').css('color','red')
您没有作为
lmn
的前一个元素且也包含abc
的任何pqr
,因此没有元素符合您的条件。FIDDLE