Las celdas de la tabla IE7 invisibles por CSS no pueden hacerse visibles por los cambios de clase posteriores (??)

Aquí hay dos archivos de prueba:

http://gutfullofbeer.net/good-table.html

http://gutfullofbeer.net/bad-table.html

El marcado en esas dos páginas es casi el mismo. Hay una mesa con dos columnas. los<th> y<td> Todos los elementos de una columna (la segunda) reciben la clase "basura".

En la página "buena", cuando la cargues, verás una casilla sin marcar en la parte superior. Si marca la casilla de verificación, la segunda columna debería desaparecer. Si lo desmarca, vuelve la segunda columna. En la página "incorrecta", la casilla de verificación comienza marcada. Desmarcarlo no tiene ningún efecto en IE7, aunque funciona en otros navegadores que no están poseídos por el mal fundamental.

La casilla de verificación está conectada a una pequeña rutina de Javascript que simplemente agrega o elimina la clase "compact" del<table> etiqueta. Hay una hoja de estilo que incluye esto:

table.compact th.junk, table.compact td.junk {
  display: none;
}

Entonces quedebería Suceder es lo que sucede en la página "buena". Sin embargo, parece que en IE7 (quizás 6 también) si los elementos de la tablapartir tal que cuandoinicialmente Si están diseñados para ser invisibles, nunca se verán, independientemente de los cambios posteriores en el DOM que pondrían en vigencia nuevas reglas de estilo y las dejarían visibles. (Esto parece ser un problema con<table> partes en particular; Estoy usando el mismo mecanismo en otros lugares con otros elementos y todos funcionan bien).

Entonces, la pregunta es: ¿alguien sabe de algún truco, por repugnante que pueda usarse para evitar este comportamiento idiota? Obviamente, podría tratar de organizar que IE7 inicie sus vistas con el conjunto de control de alternancia relevante para que las celdas de la tabla sean visibles, pero en mi caso esto sucede alrededor de una tabla que se produce como una respuesta AJAX, y sería un gran Desorden que preferiría evitar. (La tabla también es realmente una tabla; es una visualización de información tabular, no un truco de diseño).

Busqué en Google y no encontré nada, lo que no debería ser sorprendente si consideras cuántos resultados obtienes de las búsquedas de "error de diseño de IE7".

Respuestas a la pregunta(2)

Su respuesta a la pregunta