Supprimer les styles en ligne - Astuces CSS

Anonim

Cette fonction préserve également le contenu caché.

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; ) ) )

Usage

Appelez la fonction comme ceci:

var all = document.getElementsByTagName('*'); remove_style(all);

Remarque: la sélection de tous les éléments de la page via une requête générique peut être lente, en fonction du nombre d'éléments dans la page. Vous pouvez utiliser un ensemble d'éléments plus petit pour être plus performant:

var set = document.getElementById('foo').getElementsByTagName('bar'); remove_style(set);

Code par Nathan Smith.