2017-02-17 11 views
4

私は0を含むスパンを隠すために探しています。私は他のコードを見てきましたが、それを適応しようとしましたが、正しく動作するようにはできません。内容が "0"のときのみ範囲を非表示にしたいが、下のコードを実行すると0を含む任意の数値が隠されるので、例えば10が必要ではない。jQueryを使用してテキストが "0"の場合、 "span"を非表示にする方法は?

スパンは、その内側の数字が0より大きい場合にのみ表示されます(0から始まるカウンタなので、0より小さくすることはできません)。

何か助けていただければ幸いです。

HTML

<div id="post-excerpts-likes"> 
    <a href="#" class="zilla-likes" id="zilla-likes-175519" title="Like this"> 
     <span class="zilla-likes-count">0</span> 
    </a> 
</div> 

jQueryの

$(".zilla-likes-count:contains('0')").hide(); 

も同じクラスで、すべてのページに複数のスパンにそこに行くされている、私はそれらに影響を与えるコードをたいことに注意してくださいすべて。

答えて

9

は正確に等しいテキストを持っていますが、:contains()はあなたが望むものではありません。 .filter()は、テキストに基づいて選択された要素をフィルタリングするのに適した機能です。それらを介して

$(".zilla-likes-count").filter(function(){ 
 
    return $(this).text().trim() === "0"; 
 
}).hide();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="post-excerpts-likes"> 
 
    <a href="#" class="zilla-likes" id="zilla-likes-175519" title="Like this"> 
 
     <span class="zilla-likes-count">Text0Text</span> 
 
     <span class="zilla-likes-count">0</span> 
 
    </a> 
 
</div>

+0

推薦は、タイプ推論ではなく、 '===" 0 "'を使用することです。特に '(" "== 0)== true'は、空の要素を拾います。 –

+0

@ freedomn-mいい言及。ありがとう。 – Mohammad

2

一致する各要素を反復処理して、その要素を「0」と完全に一致するかどうか確認し、一致する場合は非表示にすることができます。ここで

あなたが行く:あなたは要素を選択する必要が

$(".zilla-likes-count").each((i,e) => e.textContent === '0' ? $(e).hide() : '');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="post-excerpts-likes"> 
 
    <a href="#" class="zilla-likes" id="zilla-likes-175519" title="Like this"> 
 
     <span class="zilla-likes-count">0</span> 
 
     <span class="zilla-likes-count">10</span> 
 
     <span class="zilla-likes-count">55</span> 
 
         
 
    </a> 
 
    
 
</div>

3

ループ、各1台づつ、および.text()で内容を確認:

$(".zilla-likes-count").each(function(){ 
    if ($(this).text() === '0') { 
     $(this).hide(); 
    } 
}); 
0

シンプルに...ちょうどクラスの配列を反復処理し、その値が含まれているかどうかを確認0。したがって、コードは次のようになります:

$(".zilla-likes-count").each(function(){ 
    if ($(this).text() === '0') $(this).hide(); 
}); 
+1

これは動作をまったく変更しません。ゼロを含む要素は隠され、正確にゼロの内容を持つ要素は隠されません。 –

+0

ああ、悪いです。 OPはその値がカウンターナンバーであると私の目から完全に逃げました。修正のおかげで:) +1 – m87

関連する問題