0

有一个快点,希望。我在下面包含了这两个列表项。RoyalHtmlContent 的字体颜色为灰色,但如果它在 royalSlide 列表项中有royalImage,我需要字体颜色为白色。

<li class="royalSlide" style="height: 420px; width: 610px; ">
<div class="royalHtmlContent">Text</div>
</li>

<li class="royalSlide" style="height: 420px; width: 610px; ">
<img class="royalImage" src="#" width="610" height="420" style="margin-left: 0px; margin-top: 0px; ">
<div class="royalHtmlContent royalHtmlContentOverlay">Text text text</div>
</li>

我试过这个,但它不起作用......它只是将类(它将具有白色字体颜色的样式)应用于所有的royalHtmlContent。只有当它在列表中也有 RoyalImage 时,我才需要它来执行此操作。

if ($('.royalSlide').has('.royalImage')) {
    $('.royalHtmlContent').addClass('royalHtmlContentOverlay');
}

在此先感谢,

4

2 回答 2

2

您的代码不起作用有两个原因(优先)

  • 一个 jQuery 选择总是返回一个选择,而不是一个虚假的值,所以总是满足条件
  • if 中使用的选择独立于 if 中的选择。

首先选择图像。如果选择为空,则链的其余部分将不执行任何操作

$(".royalSlide > .royalImage").next("div.royalHtmlContent")
                              .addClass('royalHtmlContentOverlay');
于 2012-10-26T13:24:53.963 回答
1
$('img.royalImage').next('div.royalHtmlContent').addClass('royalHtmlContentOverlay');

认为这也可以吗?基本上只是寻找所有的,如果那里有一个,向 div 添加一个类,您可以在其中使用 css 对其进行样式设置。

于 2012-10-26T13:23:31.000 回答