簡體   English   中英

將類別添加到 <body> 如果一個DIV有4個以上的元素

[英]Add Class to <body> if a DIV has more then 4 elements

<div class="scroll">具有超過4個<li>text</li>元素時,我正在嘗試向<body>添加類。

HTML:

 <body>  
   <div class="scroll">
   <div>   <!-- Parent Element -->
     <ul>    <!-- Parent Element 2 -->
     <li>text</li>     <!-- Child 1-->
     <li>text</li>     <!-- Child 2-->
     <li>text</li>     <!-- Child 3-->
     <li>text</li>     <!-- Child 4-->
     <li>text</li>     <!-- Child 5-->
     </ul>
   </div>
   </div>
 <body>

表示如果<div class="scroll">有5個<li>text</li>項,則將類添加到body例如<body class"popup"> 任何人都知道如何通過Jquery做到這一點。 提前致謝。

您可以使用setInterval(僅在動態添加了li的情況下才需要,如果不是這種情況,則可以跳過),並檢查其長度,並根據需要執行相應的操作。

setInterval(function(){
    if(jQuery('div.scroll ul > li').length > 4)
        jQuery('body').addClass('popup');
    else
        jQuery('body').removeClass('popup');
}, 1000);

注意:您需要將此腳本放置在body標簽關閉之前或需要比較其長度的元素之后。

我認為您正在追隨以下情況。

$(function() {
    //Will execute as soon as the DOM is loaded
    addBodyClass();

    //Let's say a click function somewhere deletes a LI
    $("selector").on("click", function() {
        $('.scroll li:last').remove();
        //Now there are 4 LIs which means remove the popup class from body
        //So, call the function again
        addBodyClass();
    });

});

function addBodyClass() {

    $('.scroll li').length > 4 && $("body").addClass("popup") || $("body").removeClass("popup");

    //The above is the shorter version of
    if ($('.scroll li').length > 4) {
        $("body").addClass("popup");
    } else {
        $("body").removeClass("popup");
    }
}

這應該為你工作

<script type="text/javascript">

   $(document).ready(function(){

   if ($('.scroll li').length > 4) {
     $("body").addClass("popup");
    } else {
     $("body").removeClass("popup");
   }

 });


</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM