Duda javascript y removeChild

Merkury

Buenas picateclas, analizasistemas y demas engendros del infierno informático XD

Vengo esta maravillosa noche de viernes a plantear una cuestión, que sin ser de gran relevancia me ayudaría sobremanera.

Estaba yo picando codigo para mi PFC y estaba hciendo esto.

	
function delElement(element)
{
         var padre = document.getElementById('wrap');
         var hijo = document.getElementById(element);
         padre.removeChild(hijo);
}

La cosa es que me gustaría poder controlar si el removeChild se hace correctamente, he probado igualándolo a una variable, pero el retorno obviamente no es un valor booleano, con lo que..

¿Alguien podría echarme un cable?

P.D La función tal como esta funciona a las mil maravillas, sería casi imposible que el removeChild fallase, pero para cubrirme las espaldas no esta mal.

NeV3rKilL

#1 Le pones que removeChild() devuelva un boleano y controlas esa salida. Si devuelve un 0 fallo, si devuelve un 1 bien.

Si quieres tener más control pues que devuelva un int y asignas valores a los posibles fallos y así en función de lo que devuelva sabrás el error que ha ocurrido o si se borró satisfactoriamente.

1 respuesta
Merkury

#2 Que parte de "pero el retorno obviamente no es un valor booleano" es la que te has saltado xD

Eso ya lo he intentado

En el código he quitado la igualación del removeChild, pero vamos que el retorno es el código HTML.

1 respuesta
NeV3rKilL

#3 Pues que retorne un int.

A las muy muy malas variable global pero es una chapuza.
Sino siempre puedes devolver un objeto con la información que necesites.

Luego, no sé si en javascript se puede modificar la variable de entrada, en C con punteros podrías hacer que la variable "hijo" se vaciase después de ejecutar la función pero no sé si en javascript se pueden tener variables de entrada/salida en una función.

1 respuesta
Merkury

#4 En serio gracias por el interes, pero estoy preguntando si alguien sabe como porque el metodo de removeChild no devuelve un valor boolean y en javascript el tipo no se define y evidentemente no puedo modificar el metodo.

Si se puediese definir una salida como boolean o como int, ya lo habría hecho.

Te repito, gracias por la ayuda, pero si no sabes de Javascript, no sirve de nada.

IAF

si despues de eliminar el elemento vuelves hacer esto:

var hijo_eliminado = document.getElementById(element);

hijo_eliminado sera null si el elemento se ha eliminado correctamente pq ya no existe o no...

IAF

Leyendo como funciona removeChild dicen que:

This function returns the removed node on success, or NULL on failure.

Otra manera seria poner try y catch

1 respuesta
Merkury

#7 Voy a volver a probar porque

var hijo_eliminado = document.getElementById(element);

Lo probé y no me devolvía nada :S

Ahora te digo.

#7 vale ahora no se por que, si que me devuelve el null XD, en fin puto javascript XD.

Muchas gracias :D

Usuarios habituales

  • Merkury
  • IAF
  • NeV3rKilL