Tengo que admitir que la íºltima asignatura que conseguí sacarme de la carrera fue una en la que el 60% del valor de la nota del examen era un problema de recursividad.
La verdad es que imaginaos que muy bien no me caía el tema, porque además me costó más de un intento el sacar el aprobado. Con ello la verdad es que le pillé algo de manía a la recursividad, y a parte de utilizarla para hacer bucles programando en LISP en contadas ocasiones la he vuelto a aplicar.
Pero, todo llega, y reciéntemente me he topado con el siguiente código javascript:
function toggleDisabled(el)
{
try
{
el.disabled = el.disabled ? false : true;
}
catch(E){}
if (el.childNodes && el.childNodes.length > 0)
{
for (var x = 0; x < el.childNodes.length; x++)
{
toggleDisabled(el.childNodes[x]);
}
}
}
La verdad es que menuda maravilla, esto hay que aplicarlo más a menudo. Todo sea por seguir aprendiendo.
Por cierto, pregunta, ¿qué hace el código que hay ahí arriba? 🙂
El detalle de meter en un try el enable y comerse el catch la verdad es que llama especialmente la atención, es una solución algo bruta pero que deja el código elegante. Lo íºnico que… yo le hubiera añadido un comentario por algíºn lado… por eso de dejarlo más claro.
Saludos.
Miguel.