2011-09-29 11 views
6

Así que estoy eliminando todos los contenidos en un div en particular y agregando un contenido de mensaje. Sin embargo, javascript lanzar el siguiente error después de la llegada:error no capturado NOT_FOUND_ERR DOM Exception 8

Uncaught Error: NOT_FOUND_ERR: DOM Exception 8 

Aquí es donde el código se ejecuta

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 

}); 

personas comentaron que el problema estaba en cómo me asignaron divMessage-reviewSheet. Intenté ambos adopt y appendChild pero ninguno funciona. Se agradecería un poco de ayuda.

+1

¿Esto es MooTools? – epascarello

+0

_ $ ("reviewSheet") _ ¿Qué es? Utiliza frameworks de JavaScript, o un alias para 'document.getElementById()'? Si necesita eliminar todos los nodos del elemento (elemento vacío) simplemente use 'element.innerHTML = '';' –

+0

O en lugar de 'element.innerHTML = ''' use code: 'while (someParentElement.firstChild) someParentElement.removeChild (someParentElement.firstChild); ' –

Respuesta

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

debe ser

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

Gracias, pero eso no funcionó. Lo intenté pero sigue mostrando lo mismo. No creo que sea un problema de CSS. –

1

es el problema que está llamando los hasChildNodes() método en un objeto jQuery? No estoy seguro de qué $ ("reviewSheet") se supone que debe ser, pero al envolver una cadena en $() lo convierte en un objeto jQuery que no creo que funcione con los métodos normales de JavaScript. Si "reviewSheet" es el identificador de un elemento que podría hacer algo como

node = document.getElementById('reviewSheet'); 

entonces usted podría ir en su bucle while.

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

Oh también tienes que poner el paréntesis después hasChildNodes() para devolver un valor booleano.

Cuestiones relacionadas