Visualizzazione dei risultati da 1 a 4 su 4

Discussione: id maggiore in lista

  1. #1

    id maggiore in lista

    ho una lista(ul), che contiene dei campi (li)...
    mi servirebbe, con il DOM trovare l'elemento che nell'elemento ul abbia l'id più grande, per trovare l'ultimo elemento...
    vi starete chiedendo perchè non uso la proprietà lastChild, ma la lista la modifico con scriptaculous con Sortable.list, e siccome anche questa va a lavorare sul DOM, mi darebbe un id gia esistente... cosa dovrei fare??? vi posto i miei tentativi.
    codice:
    <ul id="menus">
    <li id="menu_3" style="cursor:move">Contattami X
    <li id="menu_4" style="cursor:move">Forum X
    
    <li id="menu_2" style="cursor:move">Index X[/list]
    <script type="text/javascript">
    function updateOrder()
    {
    var options = {
    method : 'post',
    parameters : Sortable.serialize('menus')
    };
    new Ajax.Request('http://localhost:85/php3/php3/index.php/Admin/Menuedit/edit/false', options);
    }
    Sortable.create('menus', { onUpdate : updateOrder });
    
    function nuovo() {
    var nuovo = document.liname.name.value;
    if(nuovo == ""){
    alert('il campo name non può essere vuoto');
    document.liname.name.focus();
    return;
    }
    if(document.getElementById && document.createElement) {
    // Creiamo il nuovo elemento IMG e
    // settiamo l'attributo src, che recupera l'immagine
    var tag = document.getElementById('menus');
    var last = "";
    for(var i = 1; tag.length; i++){
    var child = tag.childNodes[i].getAttribute('id');
    document.write(child);
    if(last < child) last = child;
    }
    ++last;
    li = document.createElement("LI");
    li.setAttribute("id","menu_" + last);
    li.setAttribute("style", "cursor: move; position: relative;");
    li.innerHTML = nuovo + ' X';
    // inseriamola quindi nel nostro paragrafo
    document.getElementById("menus").appendChild(li);
    
    }
    }
    function del(id, nodeId){
    if(confirm('Eliminare?')){
    var tag = document.getElementById('menus');
    var remove = document.getElementById(id);
    tag.removeChild(remove);
    var new_id = id.replace(/menu_([0-9]{1,}){1}/, '$1');
    var options = {
    method : 'post',
    parameters : 'id=' + new_id
    }
    new Ajax.Request('http://localhost:85/php3/php3/index.php/Admin/Menuedit/edit/del', options);
    }
    }
    </script>
    <form name="liname"><input name="name" type="text" /><input type="button" onclick="nuovo()" value="Nuova voce"/></form>
    vi prgo aiutatemi

  2. #2

  3. #3
    Ci sono degli errori nel codice che hai postato, tipo il ciclo for cmq, prova a modificare così:
    codice:
    var 
      tag = document.getElementById('menus').getElementsByTagName('li')
      ,len=tag.length
      ,last=0
      ,child,i;
    for(i=0; i<len; i++){
    	child = parseInt(tag[i].id.split('_')[1]);
    	document.write(child);
    	if(last<child) last = child;
    }
    dA .. foto di viaggio
    L'esperienza è il tipo di insegnante più difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  4. #4
    grazie mille, non avrei saputo come fare...
    però non so perchè non funziona la Sortable...

    Non è che ne sai qualcosa?

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.