2012-05-06 41 views
1

我正在處理一個自定義Tumblr HTML模板。在每篇文章(= li包括「post」類)中,我想隱藏一個包含類「callToAction」的div,但僅當帖子包含名稱爲「#id-Original」的標籤時。如果特定標記存在,則在帖子中有條件顯示div

我試了一下,到目前爲止這個CSS默認

.callToAction { 
display:none; 
} 

然後這個jQuery語句來隱藏行動呼籲div來展現呼籲採取行動,如果一個帖子包含了「ID-原始」標籤。

if ($('#id-Original')) { 
    $('#id-Original').closest('li.post').css('background-color', '#005580'); 
    $('#id-Original').closest('.callToAction').css('display', 'block'); 
} 

→當前問題:背景顏色根據標籤而變化。 Call to Action div始終保持隱藏狀態。

的HTML

   <li class="post photo textcentered"> 
        <div class="row"> 
         <div class="span12 textcentered"> 
         ... 
         </div> 
        </div> 
        <div class="row"> 
         <div class="span12 addSpaceAtTop photocaption"> 
          <p>Week #1 [Non-Original]</p> 
          <ul class="tags"> 
            <li> 
             <a href="..." id="id-Weekly">Weekly</a> 
            </li> 
          </ul>     
         </div> 
         <div class="span12 addspace callToAction"> 
          <p><a class="addspaceright" href="...">Download Original Size</a> <a class="btn" href="/submit">Upload Your Version</a> 
          </p> 
         </div> 
        </div> 
       </li> 

       <li class="post photo textcentered"> 
        <div class="row"> 
         <div class="span12 textcentered"> 
          ... 
         </div> 
        </div> 
        <div class="row"> 
         <div class="span12 addSpaceAtTop photocaption"> 
          <p>Week #2 [Original]</p> 
          <ul class="tags"> 
            <li> 
             <a href="..." id="id-Original">Original</a> 
            </li> 
            <li> 
             <a href="..." id="id-Weekly">Weekly</a> 
            </li> 
          </ul>     
         </div> 
         <div class="span12 addspace callToAction"> 
          <p><a class="addspaceright" href="...">Download Original Size</a> <a class="btn" href="/submit">Upload Your Version</a> 
          </p> 
         </div> 
        </div> 
       </li> 
+1

(2個員額,一個以 「ID-原始」 標籤,一個沒有摘錄)'如果($('# id-Original'))'永遠是真的!和'if($('Nothing bla doesntExist input.class Dont need it'))''一樣 – gdoron

回答

1
var $deepSelector = $('li.post ul.tags'); 

$deepSelector.each(function() { 

    if ($('li a#id-Original', this).length) { 
     $(this) 
       .closest('li.post') 
       .css('background-color', '#005580') 
       .find('div.callToAction') 
       .css('display', 'block'); 
    } 

}); 

WORKING DEMO

1
$('#id-Original').closest('.callToAction').show().css('display', 'block'); 
相關問題