Удалить встроенные стили - CSS-хитрости

Anonim

Эта функция также сохраняет скрытый контент.

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

использование

Вызовите функцию так:

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

Примечание. Выбор всех элементов на странице с помощью запроса с подстановочными знаками может быть медленным, в зависимости от количества элементов на странице. Вы можете использовать меньший набор элементов для большей производительности:

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

Код Натана Смита.