Javascript 更改最接近类的背景色

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

我有以下HTML:

<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");
      }