2016-07-28 9 views
1

<h5>がない場合、divコンテナを非表示にしたいと思います。通常、divコンテナは非表示になります。サーバーが他のWebサイトからフィードを取得すると、<h5>がdivコンテナ内に追加されます。その後、divがページに表示されます。ここでjQueryページに別の要素がある場合、要素にクラスを追加します。

が出<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> 

とHTMLであるだから私はno-alertたときにそこにクラスを追加することにより、#alert-feedを非表示にすることなく、HTMLの構造の簡素化バージョンです。その中には<h5>はありません。私はこれが単にhasClassaddClassを使って行うことができることを知っていますが、構造は本当に混乱しており、私はそれについて何もできません。だから、誰かが私にこれをどうやってやるのを助けることができるだろうか?

+0

を助けなら、私が知っていますか? – niyasc

答えて

5

これを試してみてください - あなたはちょうどそれの内側h5の有無に基づいて#alert-feedを非表示にしたい場合、あなたはこれを試すことができます別のウェブサイト

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

OPは '#alert-feed'の中に' h5'がないときにクラスを追加しようとしています。私はあなたの現在の変種が反対をしていると思います。 –

0

からフィードを引っ張ることを試みた後に実行する必要がありますコード:

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

そうでないクラスは、その後、必要な場合:

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

これは、直接のh5子を見つけるだけです。 idが 'alert-feed'の要素ですか? – Black

+1

@EdwardBlackいいえ、 '#alert-feed'内のどのレベルにも' h5'があります。直接 'h5'の場合は' $( '#alert-feed> h5') 'と書く必要があります。 –

0

の場合は、not()関数>.not()

のコードスニペットをご覧ください。それはあなたが `h5`タグを追加するにはどうすればよい

$(".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

関連する問題