Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22

Discussione: Div da mettere a posto

  1. #1

    Div da mettere a posto

    Salve a tutti, ho una serie di div in lista disordinati, ovvero ogni div contiene un numero ma non in ordine, vorrei metterli quindi in ordine numerico.

    Per metterli in ordine avevo pensato di assegnare a tutti i div il numero 1 e a quelli successivi un numero progressivo attribuito da un ciclo for, cercando il div della lista successiva quindi vi allego lo script che avevo abbozzato.
    http://jsfiddle.net/dariomarco/bv1sqava/1/

    Grazie in anticipo a chi si offre di perdere qualche minuto del suo tempo per aiutarmi.

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao, non ho capito il procedimento con cui hai pensato di riordinarli. Perché assegni a tutti il valore 1?
    Ma l'intenzione è riordinare i div o "sovrascriverne" il contenuto per ottenere una serie ordinata?

    PS: nel tuo scrip noto alcuni errori. Gli elementi <li> dovrebbero stare dentro un contenitore <ul> o <ol>. I valori degli id devono essere sempre univoci.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Puoi usare il metodo sort() con una roba del genere:
    codice:
    <!DOCTYPE HTML>
    <html>
      <head>
        <title>Esempio</title>
        <meta charset="utf-8">
        <script src="http://code.jquery.com/jquery-latest.min.js"></script>
        <script type="text/javascript">
          function ordina(cosa){
            var elementi = $("li",cosa).sort(function (a, b) {
              return $("div",a).text() > $("div",b).text();
            });
            $(cosa).html(elementi);
          }
        </script>
      </head>
      <body>
        <ul id="listaDaOrdinare">
          <li><div>1</div></li>
          <li><div>4</div></li>
          <li><div>3</div></li>
          <li><div>2</div></li>
        </ul>
        <a href="#" onclick="ordina('#listaDaOrdinare');">ordina</a>
      </body>
    </html>
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  4. #4
    Ciao Killerworm, grazie per le tue risposte e per il tuo aiuto, purtroppo non sono riuscito a risponderti prima perchè le vacanze mi hanno impegnato, cercherò di provare il tuo script, comunque devo solo sovrascriverne il contenuto generando un senso numericamente logico. Voglio con l'occasione augurarti una buona Pasqua.

  5. #5
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Grazie, buone festività!
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  6. #6
    Ciao Killerworm, il metodo sort() serve se non sbaglio a mettere in ordine tutto il div, a me interessa solo cambiare il testo del div rispettando la numerazione ordinale, quindi la posizione del div rimane la stessa, ma cambia solo il testo (numero ordinale contenuto in esso).
    Credo che il concetto centrale si di sovrascrivere il contenuto del div con un ciclo che parte da 1 a n ma non riesco ad estrapolarne uno script funzionale.

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Vedi se questo può fare al caso tuo
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao, vedi se può andare bene l'esempio di Andrea, altrimenti prova così:
    codice:
    <!DOCTYPE HTML>
    <html>
      <head>
        <title>Esempio</title>
        <meta charset="utf-8">
        <script src="http://code.jquery.com/jquery-latest.min.js"></script>
        <script type="text/javascript">
          function ordina(cosa){
            var contenuti = $("li>div",cosa).map(function(){return $(this).text();}).get()
            .sort(function(a, b){console.log(a);return a - b;});
            $("li>div",cosa).each(function(id){$(this).html(contenuti[id]);});
          }
        </script>
      </head>
      <body>
        <ul id="listaDaOrdinare">
          <li><div id="div1">4</div></li>
          <li><div id="div2">1</div></li>
          <li><div id="div3">2</div></li>
          <li><div id="div4">3</div></li>
        </ul>
        <a href="#" onclick="ordina('#listaDaOrdinare');">ordina</a>
      </body>
    </html>
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  9. #9
    Grazie per i vostri sforzi, purtroppo ho provato entrambi gli script e non sono riuscito ad adattarli al mio contesto. In pratica questo script dovrebbe innsescarsi a seguito di una chamata ajax che riordina il contenuto numerico dei div.
    il codice da inserirlo è il seguente:

    success:function(result){

    // ordina i div

    },

    Il primo non riesco a chiudere la funzione senza che mi dia un errore di sintassi, mentre il secondo non da segni di vita

  10. #10
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Assicurati che i div, con tutta la struttura che hai indicato qui, siano presenti e quindi manipolabili nel momento in cui vai ad eseguire la funzione di riordinamento.
    Vedi se ricevi eventuali errori nella console web del tuo browser.

    Senza vedere la pagina in azione è difficile aiutarti. Se hai una pagina pubblica, posta il link.
    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.