Visualizzazione dei risultati da 1 a 3 su 3

Discussione: If last div jquery

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    170

    If last div jquery

    Buonasera forum,


    ho una pagina dinamica che a seconda delle offerte presenti nel database mi genera il seguente codice.


    nel caso di un'offerta presente


    codice HTML:
    <div id="offerte"> <div class="bodyOfferta"></div></div>

    nel caso di tre offerte


    codice HTML:
    <div id="offerte"> <div class="bodyOfferta"></div><div class="bodyOfferta"></div><div class="bodyOfferta"></div></div>

    Poichè è un meccansimo molto particolare ho la necessità di dare obbligatoriamente la seguente istruzione che non so come trasformare lato codice:


    Se ho tre offerte assegna all'ultimo <div class="bodyOfferta"></div> un margin-bottom di 40px;


    Se ho due offerte quindi


    codice HTML:
    <div id="offerte"> <div class="bodyOfferta"></div><div class="bodyOfferta"></div></div>

    Assegna all'ultimo div un margin-bottom di 70px;


    Come posso procedere?


    Grazie!

  2. #2
    con JQuery ... potresti contare gli elementi interni del div offerte, acquisire l'ultimo div interno e modificare lo style

    codice:
        
        <div id="offerte"> 
            <div class="bodyOfferta" ></div>
            <div class="bodyOfferta" ></div>
            <div class="bodyOfferta" ></div>
        </div>
        
        
        <script>
            /** ... DOCUMENT READY */ 
            $( document ).ready( onDocumentReady );
    
            /** 
              *  FUNCTION : onDocumentReady() 
              */ 
            function onDocumentReady() 
            {
                 /** ... ELEMENTO DIV offerte */   
                 var divOfferte     = $("#offerte");
    
                 /** ... ELEMENTI DIV INTERNI DI CLASSE .bodyOfferta */ 
                 var divBody        = divOfferte.children('div .bodyOfferta')
            
                 /** ... CONTA ELEMENTI DIV DI CLASSE bodyOfferta */
                 var numOfferte    = divBody.size();
            
                 /** ... ACQUISISCI ULTIMO DIV DI CLASSE bodyOfferta */ 
                 var ultimaOfferta = divBody[ numOfferte - 1 ];
    
                 switch ( numOfferte ) 
                 {
                     case 2: /** ... */ 
                               ultimaOfferta.style["margin-bottom"] = "40px";
                               break;
                     case 3: /** ... */ 
                               ultimaOfferta.style["margin-bottom"] = "70px";
                               break;
                     default: /** ... */ 
                }
           }
        </script>

  3. #3
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao.. in base a quanto hai riportato (se i casi possibili sono solo quei tre) potresti risolvere anche con una semplice soluzione pure css:
    codice:
    #bodyOfferta>div.bodyOfferta:last-child{ margin-bottom: 70px; }
    #bodyOfferta>div.bodyOfferta:only-child{ margin-bottom: 0; }
    #bodyOfferta>div.bodyOfferta:nth-child(3){ margin-bottom: 40px; }
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.