Ver Mensaje Individual
  #6 (permalink)  
Antiguo 14/10/2010, 20:58
Avatar de zerokilled
zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Mostrar/Ocultar celdas

¡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.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 14/10/2010 a las 21:08