Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di ivy_76
    Registrato dal
    Dec 2004
    Messaggi
    1,822

    Creazione di una lista dinamica

    Ciao

    sono di nuovo qui per chiedere aiuto. Precisazione, so di mischiare JS con Jquery ma prima di passare del tutto a JQuery voglio fare un po di pratica e procedere con calma.

    Vorrei realizzare una lista dinamica di oggetti (qui nell'esempio una serie di < li >). Tramite un pulsante "+" vorrei aggiungere tali elementi e tramite un pulsante "-" vorrei toglierli.

    Per l'aggiunta non ho problemi, mentre faccio confusione quando si tratta di toglierli. Prima di passare al codice ecco cosa ottengo "graficamente". Ogni volta che premo il + creo una nuovo elemento con un nome a caso.

    testo1
    testo141
    testo123

    pulsante "+" ==== pulsante "-"

    Il mio problema è quando devo togliere un elemento. Clicco sul pulsante "-" e con il codice che avevo scritto prima, toglievo ogni volta il primo elemento della lista. Potrebbe anche andare bene se non fosse che poi ogni volta che premo il "+" viene ad aggiungersi un nuovo elemento in coda, lasciando uno o piu spazi in alto. E cosi fa proprio schifo!

    Vorrei togliere, ogni volta che premo il pulsante "-" l'ultimo elemento della lista. Avevo pensato di mettere degli array ma nn riesco ad accedervi. E poi sono passato ai < li > perché mi pareva più semplice ma non riesco nel mio intento.

    Ho pensato questo: leggo quanti sono gli elementi[*] nel <ul>, vado all'ultimo e poi con il metodo .remove() lo tolgo dalle scatole. Ma non riesco a capire come fare per ottenere la lunghezza di tale elemento al fine di posizionarmi alla posizione che desidero.

    Scusate se ho scritto molto, spero di essere stato chiaro.

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
     
    <head>
    <style>
    body {
    	font-family:tahoma,verdana;
    	color:#404040;
    }
    </style>
    <script type="text/javascript" src="jquery/jquery-1.8.3.js"></script>
    <script type="text/javascript" src="scrips.js"></script> 
    	<title>Pagina HTML5</title>	
    </script>
    </head>
     
    <body>
    
    <div id='risultato'>
    	<ul id='menu' class='menu'>	
    	[/list]
    </div>
    
    <input type='button' id='aggiungi' value='+' onclick='creaInput()'/>
    <input type='button' id='togli' value='-' onclick='togli()'/>
    
    
    </body>
    </html>
    Questo è invece il banalissimo file js che uso:

    codice:
    function creaInput()
    {
    	var nome = "testo" + (Math.round(Math.random()*100));
        $("#menu").append("[*]" + nome +"");         
    }
    
    function togli()
    {
    // questo mi tira fuori tutto il contenuto del <ul>		
    	var testo = $("ul.menu").text();
    
    // questo dovrebbe dire la lunghezza. In realtà tira fuori sempre un valore = 1
    	var lunghezza = $("ul.menu").length;
    	alert(lunghezza);
    	 
      // vecchio codice cancellato
    
    ...........................
    	
     
    }
    TORTA DI RISO .. F I N I T A !!

    Da M.C.S.A. a impiegato pubblico :-(

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    var lunghezza = $("ul.menu li").length;

  3. #3
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    ti ricordo che in jquery potresti selzionare direttamente l' ultimo li di .menu con
    $("ul.menu li:last-child")

    ciao

  4. #4
    Utente di HTML.it L'avatar di ivy_76
    Registrato dal
    Dec 2004
    Messaggi
    1,822
    sei troppo um mod !! In una riga mi hai spiegato tutto !

    Sono ancora troppo indietr. Grazie 1000
    TORTA DI RISO .. F I N I T A !!

    Da M.C.S.A. a impiegato pubblico :-(

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.