2011-09-29 18 views
6

Quindi sto eliminando tutto il contenuto di un particolare div e aggiungendo un contenuto di messaggio. Tuttavia, javascript gettare il seguente errore dopo l'arrivo:errore non rilevato NOT_FOUND_ERR DOM Eccezione 8

Uncaught Error: NOT_FOUND_ERR: DOM Exception 8 

Ecco il codice in cui viene eseguito

new Ajax.Request("profileThis.php", 
{ 
    method:'post', 

    parameters:{title:title, review:review, userId:userId, category:category, categoryId:categoryId}, 

    onSuccess:function(ajax) 
    { 
    alert(ajax.responseText); // this is just for debugging purposes 

    var message=ajax.responseText; 

    var divMessage=document.createElement("div"); 

    divMessage.style.color="rgb:(105,105,105)"; 

    divMessage.innerHTML=message; 

    while($("reviewSheet").hasChildNodes) 
    { 
    $("reviewSheet").removeChild($("reviewSheet").lastChild); 
    } 

    $("reviewSheet").adopt(divMessage);   

    }, 

    onFailure:ajaxFailure, 

    onException:ajaxFailure 

}); 

La gente ha commentato che il problema era con come ho assegnato divMessage-reviewSheet. Ho provato sia adopt e appendChild ma nessuno funziona. Un piccolo aiuto sarebbe apprezzato.

+1

È questo MooTools? – epascarello

+0

_ $ ("reviewSheet") _ Di cosa si tratta? Tu usi i framework javascript, o è un alias per 'document.getElementById()'? Se hai bisogno di rimuovere tutti i nodi dall'elemento (elemento vuoto) usa semplicemente 'element.innerHTML = '';' –

+0

oppure invece di 'element.innerHTML = ''' usa il codice: 'while (someParentElement.firstChild) someParentElement.removeChild (someParentElement.firstChild); ' –

risposta

3
divMessage.style.color="rgb:(105,105,105)"; 

dovrebbe essere

divMessage.style.color="rgb(105,105,105)"; 
+0

Grazie, ma non ha funzionato. Ho provato ma è ancora visualizzato lo stesso. Non penso che sia un problema CSS. –

1

è il problema che si sta chiamando i hasChildNodes metodo() su un oggetto jQuery? Non sono sicuro di cosa debba essere $ ("reviewSheet"), ma il wrapping di una stringa in $() lo rende un oggetto jQuery che non credo funzioni con i normali metodi javascript. Se "reviewSheet" è l'id di un elemento si potrebbe fare qualcosa di simile

node = document.getElementById('reviewSheet'); 

allora si potrebbe andare nel vostro ciclo while.

while (node.hasChildNodes()) { 
//the rest of your code here 
} 

Oh anche bisogno di mettere la parentesi dopo hasChildNodes() per restituire un valore booleano.

Problemi correlati