Javascript 更改最接近类的背景色
我有以下HTML:Javascript 更改最接近类的背景色,javascript,jquery,html,Javascript,Jquery,Html,我有以下HTML: <article> <a href="#" title="Title"> <span class="row first"> <span class="col"> <span class="articleTitle">Article title</span> <span class="row
<article>
<a href="#" title="Title">
<span class="row first">
<span class="col">
<span class="articleTitle">Article title</span>
<span class="row">
<span class="tel">12345</span>
<span class="mail">test@domain.com</span>
</span>
</span>
<span>
<span class="articleFlag flagNone"></span>
</span>
</span>
</a>
</article>
<article>
<a href="#" title="Title">
<span class="row first">
<span class="col">
<span class="articleTitle">Article title</span>
<span class="row">
<span class="tel">12345</span>
<span class="mail">test@domain.com</span>
</span>
</span>
<span>
<span class="articleFlag flagRed"></span>
</span>
</span>
</a>
</article>
但它不起作用。有什么想法吗?你好,请检查一下
我认为它将帮助您使用jQuery的:has()
选择器()
最接近dom树的遍历,这就是选择器不工作的原因 试试下面的js代码
if ($('.articleFlag.flagNone')) {
$('.articleFlag.flagNone').parents('.row:eq(0)').find('.articleTitle').css("background", "red");
}
.closest()
检查沿DOM树向上移动的每个父对象,但是.articletTitle
不是父对象。这是正在生成的HTML,还是您正在使用的静态DOM,因为如果生成了它,您可以将HTML设置为更好地使用它。。。
$(document).ready(function() {
if ($('.articleFlag.flagNone').length>0) {
$('.articleFlag.flagNone').closest('.row').find('.articleTitle').css("background-color", "red");
}
});
$(document).ready(function() {
if ($('.articleFlag.flagNone')) {
$('.row:has(.flagNone) .articleTitle').css("background", "red");
}
});
if ($('.articleFlag.flagNone')) {
$('.articleFlag.flagNone').parents('.row:eq(0)').find('.articleTitle').css("background", "red");
}