下面是一个例子,你可以如何使用普通的香草JS:http://jsfiddle.net/AfdzW/。基本上你只需要定位你希望删除的内联样式的DOM元素,然后调用removeAttribute()
方法。
function clearInlineStyles(sel) {
var els = document.querySelectorAll(sel);
[].forEach.call(els, function(e) {
e.removeAttribute('style');
});
}
clearInlineStyles('div');
作为替代方案,如果你只是想针对某些内嵌样式,你可以使用$.fn.css()
jQuery的方法分别针对那些风格:
$.fn.removeSelectedStyles = function() {
var styles = arguments;
this.each(function() {
var $that = $(this);
[].forEach.call(styles, function(style) {
$that.css(style, '');
});
});
}
$('div').removeSelectedStyles('background', 'height');
这里有一个fiddle展示了jQuery插件在工作中
您可以使用'$('div [style]')。removeAttr('style');'或'$('div')。removeAttr('style');',其中前者更快。见[这里](http://stackoverflow.com/questions/1229688/how-can-i-erase-all-inline-styles-with-javascript-and-leave-only-the-styles-spec) – royhowie
哪里是从页面获取动态内联样式?如果这是您自己的代码,那么也许您可以将其更改为动态添加的类,其中的(外部)CSS中的样式位于该类中。这也允许你再次使用'@ print'介质。 – GolezTrol
不,这不是我的页面,我不能改变它。我开始认为我可能不会检查媒体是否正确。我认为这是正确的,因为我做了这个逻辑切换if/else。否则是真的,但即使IF错了也可能是真的......包含代码以执行打印的确定方法是什么? – santa