Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Importare div senza gli stili da un .html usando Jquery

    Ciao a tutti,
    avevo bisogno dell'aiuto di chi è più esperto di me.
    Al lavoro utilizzo un software che mi genera pagine html, le quali vengono divise automaticamente in div auto generati (non riesco a spiegarmi meglio di così in quanto è un software aziendale decisamente poco diffuso, quindi sconosciuto a tutti credo).
    Questi div sono così formati per esempio: <div id="LayoutCell_3499" class="layoutCell" style="width: 984px; height: 581.9px;"></div>.
    Ora ho la necessita di iniettare il loro contenuto all'interno di una index da me strutturata in diversi div con id differenti...
    <div id="azienda"></div>, <div id="contatti"></div>...
    Per farlo uso questo script:

    <script>
    $('document').ready(function(){
    $('#contatti').load( "rawpages/IT/REFLEX_CONTATTI.html , div[class='layoutCell']");
    });
    </script>

    Così facendo però mi vengono importati anche gli stili (nel caso su riportato style="width: 984px; height: 581.9px;"), ma io non voglio che accada...voglio inserire infatti solo il contenuto del div.
    Che comando devo dare affinche gli stili vengano ignorati?
    Vi ringrazio anticipatamente per l'aiuto

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao, da quanto ne so non esiste un selettore diretto per catturare gli elementi testuali, se non usando filtri o funzioni traversing, cosa che a quanto pare non puoi fare in questo caso.
    Credo che l'unico sistema sia manipolare i dati una volta ricevuti.
    Puoi utilizzare la funzione di callback che viene richiamata, appunto, quando il caricamento è terminato. A quel punto puoi selezionare l'elemento contenitore che conterrà i dati appena caricati e quindi eliminare gli stili o aggiustare la struttura o modificare il tutto a tuo piacimento.

    Ti posto un esempio.
    Supponendo di avere una pagina di dati del genere, che chiamiamo test.html:
    codice:
    <!DOCTYPE HTML>
    <html>
      <head>
        <title>Esempio</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
      </head>
      <body>
        Pagina dati esterna
        <div id="LayoutCell_3400" class="layoutCell" style="width: 984px; height: 581.9px;">Pippo</div>
        <div id="LayoutCell_3411" class="layoutCell" style="width: 984px; height: 581.9px;">Pluto</div>
        <div id="LayoutCell_3422" class="layoutCell" style="width: 984px; height: 581.9px;">Topolino</div>
        <div id="LayoutCell_3433" class="layoutCell" style="width: 984px; height: 581.9px;">Paperino</div>
        <div id="LayoutCell_3444" class="layoutCell" style="width: 984px; height: 581.9px;">Qui Quo Qua</div>
        <div id="LayoutCell_3455" class="layoutCell" style="width: 984px; height: 581.9px;">Nonna Papera</div>
      </body>
    </html>
    la pagina chiamante può essere impostata in questo modo:
    codice:
    <!DOCTYPE HTML>
    <html>
      <head>
        <title>Esempio</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <script src="http://code.jquery.com/jquery-latest.min.js"></script>
        <script type="text/javascript">
          $(function(){
            $('#contatti').load("test.html div.layoutCell", function(r,s,x){
              if (s=="success"){
              
                // Questa riga rimuove lo stile da ogni div
                //$(this).html($("div",this).removeAttr("style"));
                
                // Diversamente si possono rimpiazzare tutti i div ad es. con una lista
                $("div",this).wrapAll("<ol/>").wrap("<li/>").contents().unwrap();
                
              }else{
                $(this).html('Errore caricamento dati');
              }
            });
          })
        </script>
      </head>
      <body>
        TEST LISTA CONTATTI
        <div id="contatti">Attendere prego! Caricamento dati</div>
      </body>
    </html>
    Sulla funzione di callback puoi vedere il selettore this che fa riferimento all'elemento #contatti in cui agisce appunto il load.
    Io qui ho formattato i dati con una lista, spogliandoli quindi dei vari div. Volendo puoi semplicemente ripulirli dall'attributo style (la riga commentata, sempre nella funzione di callback) o farci quello che ti pare.
    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.