2016-07-28 36 views
1

我想在其中沒有<h5>時隱藏div容器。通常div容器將被隱藏。當服務器從其他網站提取Feed時,將在div容器內添加一個<h5>。然後div應該顯示在頁面上。jQuery向頁面中添加一個類,如果頁面上有另一個元素

下面是HTML結構的簡化版本,沒有出<h5>

<div id="alert-feed"> 
    <div class="webpart-title">Title</div> 
    <div class="webpart-body"> 
     <div class="contianer"> 
      <ul class="feedlist"> 
       <li class="campusfeed"> 
        <ul class="articlelist"></ul> 
       </li> 
      </ul> 
     </div> 
    </div> 
</div> 

這裏是<h5>

<div id="alert-feed"> 
    <div class="webpart-title">Title</div> 
    <div class="webpart-body"> 
     <div class="contianer"> 
      <ul class="feedlist"> 
       <li class="campusfeed"> 
        <ul class="articlelist"> 
         <li> 
          <a><h5 class="articletitle"></h5></a> 
         </li> 
        </ul> 
       </li> 
      </ul> 
     </div> 
    </div> 
</div> 

所以,我想通過添加類no-alert隱藏#alert-feed的HTML時,有裏面沒有<h5>。我知道這可以簡單地通過使用hasClassaddClass,但結構真的讓我感到困惑,我對此無能爲力。那麼有人可以幫我弄清楚如何做到這一點?

+0

你如何添加'h5'標籤? – niyasc

回答

5

試試這個 - 需要你試圖從其他網站

var feed = $('#alert-feed'); // get your feed 
if (!feed.find('h5').length) { // check if it doesn't contain a h5 
    feed.addClass('no-alert'); // if it doesn't, add a class 
} 
+0

當'#alert-feed'裏沒有'h5'時,OP想添加類。我認爲你現在的變種是相反的。它應該是'if(!feed.find('h5')。length){...}' –

+0

我剛剛意識到這一點,並且在編輯您的評論時進行編輯:) – Pete

0

拉你的飼料如果你只是想根據有無h5裏面隱藏#alert-feed後運行,你可以試試這個代碼:

if(!$('#alert-feed h5').length) { 
    $('#alert-feed').hide(); 
} 

否則,如果需要的類,然後:

if(!$('#alert-feed h5').length) { 
    $('#alert-feed').addClass('no-alert'); 
} 
+0

這隻會找到直接h5子帶有alert-feed標識的元素? – Black

+1

@EdwardBlack不,它可以在'#alert-feed'裏找到'h5'到任何級別。對於直接'h5',我們需要把它寫成'$('#alert-feed> h5')'。 –

0

你可以使用not()功能>.not()

看到下面的代碼片段。讓我知道,如果它可以幫助

$(".articlelist").not(":has(h5)").addClass("no-alert");
.no-alert li { color:red;} 
 
.articlelist:not(.no-alert) { color:blue;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="alert-feed"> 
 
    <div class="webpart-title">Title</div> 
 
    <div class="webpart-body"> 
 
     <div class="contianer"> 
 
      <ul class="feedlist"> 
 
       <li class="campusfeed"> 
 
        <ul class="articlelist"> 
 
         <li> 
 
         <a><h5 class="articletitle">h5 is here !</h5></a> 
 
         </li> 
 
         
 
        </ul> 
 
        <ul class="articlelist"> 
 
         <li> 
 
         no h5 here ! 
 
         </li> 
 
         
 
        </ul> 
 
       </li> 
 
      </ul> 
 
     </div> 
 
    </div> 
 
</div>

+0

這個例子不清楚。 – Black

+0

爲什麼不清楚? –

+0

我們沒有看到甚至發生了什麼。添加一個啓動你的代碼的開始按鈕,所以我們可以看到不同之處。 – Black

相關問題