Por lo general si algo funciona con IE y no funciona con Firefox es por que no estás usando una función estándar sino una función javascript del IE (y que posiblemente no puedan quitar porque si no se les colapsarían todos los sitios diseñados para IE).
Basarse en funciones de IE es muy negativo. Por lo general se hace una versión del código compatible en los navegadores generales, y lo máximo compatible en IE, y luego se aplican modificaciones del código para aceptar los caprichos de IE.
En cuanto a esto, si deberías irte a DOM, pero no por que sea capricho, sino por que es el estándar ahora y será el estándar mañana (ya que hoy en día no está totalmente implementado, por ejemplo Opera no entiende el comando de eliminar objetos).
Lo que Adler quiere decir es que no necesitas acceder al objeto mediante getElementsById ya que cone l DOM puedes entrar directamente a cualquier objeto siguiendo el árbol de elementos. Y si no te sale bien maquetado es porque hay algo mal. Prueba con esto (que es DOM):
Código Javascript
:
Ver originaltd = document.getElementById('IDdelTR').firstChild; // esto llama al primer hijo del TR
while(td != document.getElementById('IDdelTR').lastChild){ //creo que hay una forma
//mejor de hacer esto pero ahora no me acuerdo.
td.style.display = 'none';
}