¡buenas gente!
@abimael,
por los comentarios que haz dicho deduzco que te funcionó. ¿de casualidad eres amante de iexplorer?
veras, lo digo porque tanto la propuesta de cronos como el arreglo que hiciste, no funciona en chrome/firefox. la explicación es bien sencilla. iexplorer no genera los nodos tipo Text cuando consiste de caracteres en blanco (whitespace) pero el resto de los navegadores los preserva. primero una ilustracion y luego los detalles.
Código:
<td onclick="hideUnhideElement(this.nextSibling)">Categoria</td><!--
--><td id="subCategoria[0]"><!--
--><table><!--
--><tr><!--
todo lo que esta dentro del comentario html son nodos Text. --><td ...
- this.nextSibling en iexplorer representa el proximo elemento <td>. en los demas navegadores representa un nodo Text. la razon por la que presenta un nodo Text es por la estructura en que esta escrita el HTML. genera error porque los nodos Text no tienen propiedad style.
- this.nextSibling.firstChild en iexplorer firstChild representaria el elemento <table>. en los demas navegadoes representa null porque es imposible que un nodo Text tenga elementos hijos. genera error porque style no es una propiedad de null.
en
mozilla puedes leer un artículo que habla sobre ello y la solución a ese
problema. lo único que haría diferente es definir un solo evento global para la tabla principal y con la ayuda del objeto
event determinar en que elemento ocurrio el evento. de esta forma no tienes que definir varias veces el mismo evento en varios elementos.