Esta función también conserva el contenido oculto.
function remove_style(all) ( var i = all.length; var j, is_hidden; // Presentational attributes. var attr = ( 'align', 'background', 'bgcolor', 'border', 'cellpadding', 'cellspacing', 'color', 'face', 'height', 'hspace', 'marginheight', 'marginwidth', 'noshade', 'nowrap', 'valign', 'vspace', 'width', 'vlink', 'alink', 'text', 'link', 'frame', 'frameborder', 'clear', 'scrolling', 'style' ); var attr_len = attr.length; while (i--) ( is_hidden = (all(i).style.display === 'none'); j = attr_len; while (j--) ( all(i).removeAttribute(attr(j)); ) // Re-hide display:none elements, // so they can be toggled via JS. if (is_hidden) ( all(i).style.display = 'none'; is_hidden = false; ) ) )
Uso
Llame a la función así:
var all = document.getElementsByTagName('*'); remove_style(all);
Nota: La selección de todos los elementos de la página mediante una consulta con comodines puede resultar lenta, dependiendo de cuántos elementos haya en la página. Podría usar un conjunto más pequeño de elementos para tener un mejor rendimiento:
var set = document.getElementById('foo').getElementsByTagName('bar'); remove_style(set);
Código de Nathan Smith.