-1

特定の要素が含まれていない場合に要素を非表示にするjQueryスクリプトがあります。

<script type="text/javascript"> 
$(document).ready(function(){
    $("div.main div p").not(":has(span)").css("display","none");
});
</script>

<div class="main">
    <div>
        <p>Hello <span>OK</span></p>
        <p>Hi</p>
    </div>
    <div>
        <p>Yo</p>
    </div>
</div>

このスクリプトは、<p>Hi</p><p>Yo</p>テキストを非表示にします。

下の div にを含む要素がdiv.main含まれていないかどうか、または別の方法で確認するにはどうすればよいですか: div の下のすべての要素が に設定されている場合...そして、それらの divを<p><span><p>display:nonedisplay:none

したがって、HTML 出力は次のようになります。

<div>
    <p>Hello <span>OK</span></p>
    <p style="display:none">Hi</p>
</div>
<div style="display:none">
    <p style="display:none">Yo</p>
</div>
4

2 に答える 2

0

もっと簡単にできると思います:

$("div.main div p:not(:has(span)), div.main div:not(:has(p>span))").hide();

jsFiddle デモ: http://jsfiddle.net/pdBbU/1/

于 2013-03-31T19:13:13.860 に答える
0

One way would be to loop through the divs and check if they contain any p elements with spans. Something like the following would work:

$("div.main div").each(function(){
  if($(this).find("p:has(span)").length == 0){
    $(this).hide();
  }
});
于 2013-03-31T19:07:13.690 に答える