Fjern indbyggede stilarter - CSS-tricks

Anonim

Denne funktion bevarer også skjult indhold.

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

Anvendelse

Kald funktionen sådan:

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

Bemærk: At vælge alle elementer på siden via en jokertegnsforespørgsel kan være langsom, afhængigt af hvor mange elementer der er på siden. Du kan bruge et mindre sæt elementer til at være mere performant:

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

Kode af Nathan Smith.