2012-10-26 64 views
0

希望有一個快速的。我有以下兩個列表項目。 royalHtmlContent的字體顏色爲灰色,但如果royalSlide列表項中包含royalImage,則需要字體顏色爲白色。添加班級,如果列表項目包含x元素

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

由於提前, [R

回答

2

您的代碼不會有兩個原因(優先級)

  • 這個jQuery選擇alwyas返回一個選擇,從來沒有一個falsy值,條件總是滿足工作
  • 在使用的選擇,如果是獨立的的選擇裏面的if。

首先選擇圖片。如果選擇爲空鏈的其餘部分將不會做任何事情

$(".royalSlide > .royalImage").next("div.royalHtmlContent") 
           .addClass('royalHtmlContentOverlay'); 
+0

我不得不糾正的類名(低/大寫是錯誤的答案),但理論上完美的作品。非常感謝。 –

+0

@Richard固定:) –

1
$('img.royalImage').next('div.royalHtmlContent').addClass('royalHtmlContentOverlay'); 

覺得可能工作呢?基本上只是尋找所有的,如果一個人在那裏,增加一個類的div,在那裏你可以用CSS來設計它。

相關問題