Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    aiuto per capire codice su DOM

    Il codice che vi propongo serve per cancellare tutte le righe di una data tabella, tranne le prime due, ed a cancellare il value di un <input messo nella seconda colonna della seconda riga.
    La prima versione funziona solo con IE, la seconda funziona sia con IE che con mozilla firefox e NN

    Quello che vi chiedo è di aiutarmi a capire perchè la prima versione non funziona con mozilla.
    codice:
    function Button0_onclick() 
    {
    	var IsMSIE = navigator.appName.indexOf("Microsoft") != -1;
    	
    	if(IsMSIE)
    	{alert("IE");
    		//-------------------------------------
    		//questa versione funziona solo con IE
    		//-------------------------------------
    		var i;
    		var t = document.getElementById("table11");
    		var nr = t.childNodes[0].childNodes.length;
    	
    		//cancella le righe tranne le prime 2
    		for(i = nr -1; i >= 2; i--)
    		{
    			t.childNodes[0].removeChild(t.childNodes[0].childNodes[i]);
    		}
    		//cancella il testo della 2° colonna, 2° riga
    		t.childNodes[0].childNodes[1].childNodes[1].childNodes[0].value = "";
    	
    	}
    	else
    	{alert("not IE");
    		//----------------------------------------------------
    		//questa versione funziona sia con IE che con mozilla
    		//----------------------------------------------------
    
    		var i;
    	
    		var t = document.getElementById("table11");
    		var tb = t.getElementsByTagName("tbody").item(0);
    		var r = tb.getElementsByTagName("tr");
    		var nr = r.length;
    		for(i = nr -1; i >= 2; i--)
    		{
    			tb.removeChild(r[i]);
    		}
    		var inp = r[1].getElementsByTagName("input").item(0);
    		inp.value = "";
    	
    	}
    	
    	
    }
    Un grazie sentito a tutti
    Pietro

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Con quale DOCTYPE?

    Perche` ho l'impressione che alcune funzioni usate nel tuo script siano proprie di XML.

    Se non usi DOCTYPE e` possibile che IE passi automaticamente ad interpretare l'XML se trova qualcosa che funziona in XML.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    è una paginetta html di prova fatta con Interdev. Non usa DOCTYPE

    Il mio codice non credo (bada bene, non credo ) usi xml, ma istruzioni DOM. Conta che ho cominciato ieri o avantieri.

    Da ignorante credo di aver capito che le istruzioni DOM vengano interpretate un po' come vogliono. In particolare, childNodes credo che IE trovi solo i nodi di primo livello, metro mozilla trova tutti i nodi.

    IE, in document.getElementById("table11").childNodes ne trova 1, precisamente TBODY, mentre mozilla ne trova 2, il primo undefined, il secondo=TBODY

    :master:

    CIAO
    Pietro

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Prova a mettere una DTD valida. Altrimenti ti devi fidare di cosa interpretano i vari browser a loro piacimento (e fidarsi di IE in quirk mode non mi pare una bella soluzione).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    sicuramente e' opportuno mettere un doctype valido
    il problema del tbody l' avevo riscontrato anch' io tempo addietro ma l' avevo risolto inserendo il tag tbody anche nell' html
    (oltre che considerandolo nell' alberatura DOM)
    ciao Pietro

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da Xinod
    sicuramente e' opportuno mettere un doctype valido
    il problema del tbody l' avevo riscontrato anch' io tempo addietro ma l' avevo risolto inserendo il tag tbody anche nell' html
    (oltre che considerandolo nell' alberatura DOM)
    ciao Pietro
    Purtroppo non è solo questo il problema. Io credo che sia logico che quando chiedo la collezione dei nodi figli di un nodo, mi si dia l'elenco dei figli e non l'elenco dei figli, dei nipoti e di tutti i discendenti :master:

    Bah! si metteranno pure daccordo un giorno

    Pietro

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.