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

Discussione: Problema RemoveChild

  1. #1

    Problema RemoveChild

    Ciao a tutti ragazzi..ho fatto questa piccola porzione di codice in javascript..la creazione dei link va benissimo, il problema è al rimuovere il tutto..ecco a voi il codice:
    codice:
    function metti(href,n,x,br){ 
    if(sw[n]==n){ 
    sw[n]=n+1;
     br=[]; 
    x=[]; 
    divtotali[n].style.display="block"; 
    for(c=0;c<=1;c++){ 
    x[c]=document.createElement("a"); 
    x[c].style.color="red";
     x[c].style.fontSize="x-small";
     x[c].setAttribute("href",c+href); 
     if(c==0){
     x[c].appendChild(document.createTextNode("Gratuiti"));
     } 
    else{ 
    x[c].appendChild(document.createTextNode("A pagamento/Demo")); 
    }
     divtotali[n].appendChild(x[c]);
     br[c]=document.createElement("br"); 
    divtotali[n].appendChild(br[c]);
     }
     return;}
     else{
     sw[n]=n;
     for(c=0;c<=1;c++){
     divtotali[n].removeChild(x[c]);
     divtotali[n].removeChild(br[c]);
     }
     divtotali[n].style.display="none";
     }}
     </script>
    Non capisco perchè non mi rimuove nulla..a creare va benissimo..a distruggere non fa nulla..inoltre firebug mi riporta questo problema:
    uncaught exception: [Exception... "Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIDOMHTMLDivElement.removeChild]" nsresult: "0x80004003 (NS_ERROR_INVALID_POINTER)" location: "JS frame :: file:///C:/Users/Marco/Desktop/Nuovo%20documento%20di%20testo.html :: metti :: line 181" data: no]
    La linea 181 è proprio quella dove inizia: divtotali[n].removeChild(x[c]);..
    Qualcosa sa darmi una mano per cortesia? Sto uscendo pazzo.
    Grazie

    Cordiali saluti
    Marco

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    non hai un link dove vedere lo script in azione?

  3. #3
    Si, ecco a te: http://www.spazioinfo93.altervista.org/
    Spero che non sia spam..nel caso lo sia chiedo scusa.
    Ti chiedo inoltre perdono per la confusione nel codice sorgente della pagina che ti ho linkato ma sto provando un pò di cose..anche banali..
    Saluti

    Marco

  4. #4
    Scusate per il doppio post..volevo dire che lo script è in azione solo per la zona Antivirus e Firewall

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    il problema sta nell'attributo id del nodo che stai creando... quando lo crei lo valorizzi con "http://www.spazioinfo93.altervista.org/0sottofire.html0" mentre quando cerchi di rimuoverlo vai riferimento ad un id del tipo "xfire0" che ovviamente non trova in pagina. Lo script è incasinatissimo probabilmente andrebbe rifatto da zero. Hai detto che utilizzi firebug allora li puoi vedere la parte di html "dinamica", cioè quelle che crei con lo script e puoi vedere come valorizzi i vari attributi html, compreso l'errata valorizzazione dell' attributo id.

  6. #6
    Hai ragione..ma non capisco..la x non dovrebbe essere xanti? e con l'istruzione x=[] non dovrei creare un array xanti[]?

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    ma se il parametro di input lo chiami "x" non capisco perche non puoi dare un altro nome all'array che crei successivamente...

    Hai ragione..ma non capisco..la x non dovrebbe essere xanti?
    infatti lo è

    e con l'istruzione x=[] non dovrei creare un array xanti[]?
    no, crei un array vuoto andando a sovrascrivere la variabile di input, quindi ti perdi l'informzione per la creazione dell'id... quando vai a fare il setAttribute dell'id tu utilizzi x come se fosse una variabile stringa ma in realtà è un array.

  8. #8
    Ho apportato modifiche facendo: x[c].setAttribute("id",x[c]+c); per quanto riguarda l'id br[c].setAttribute("id",br[c]+c); per quanto riguarda i br e divtotali[n].removeChild(document.getElementById(x[c]+c));
    divtotali[n].removeChild(document.getElementById(br[c]+c)); per quanto riguarda l'eliminazione ma non va ancora..da lo stesso errore..come posso rimediare secondo te? come posso rendere lo script "attivabile"?

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    l'array non lo crei quando fai il remove c'è un if davanti quindi

    - sto creando il link : la variabile x viene sovrascritta ed è quindi un array
    - sto cancellando il link : la variabile x è una stringa(ma la utilizzi come array)

    Cmq lo ripeto lo script è incasinato parecchio... dovresti fare un analisi del problema e riscriverlo da zero se vuoi qualcosa di fatto bene...

  10. #10
    Ah ho capito. ora ho risolto e sembra funzionante..ma come mi consigli di alleggerire lo script e renderlo più funzionante?
    Scusami per le tante domande

    Marco

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.