怪我咯2017-04-10 12:48:07
按我的想法应该是这样的: demo here from:chrome and firefox open
<p id="obj">obj obj</p>
<script type="text/javascript">
document.getElementById('obj').style.width = '500px';
document.getElementById('obj').style.height = '500px';
document.getElementById('obj').style.cssText = '';
</script>
大家讲道理2017-04-10 12:48:07
如果你的意思是清除所有在html中的style属性中写的样式的话,那可以用jikey的方法,style.cssText = '';
如果你只希望清除js动态写入的样式,而不清除html中原本写入的样式的话,你需要在所有js载入前检查每个元素的style.length的值并记录,然后在清除时,按分号截取,保留原来长度的样式即可,比如
<p id="content" style="width: 100px; height: 100px;"></p>
<script type="text/javascript">
var content = document.getElementById('content');
content.setAttribute('style-len', content.style.length);
</script>
清除:
var tempCSS = content.style.cssText.split(';');
tempCSS.length = content.getAttribute('style-len') - 0;
content.style.cssText = tempCSS.join(';') + ';';
大家讲道理2017-04-10 12:48:07
不可能全部吧,不过按照tag来干应该可以。
就是说动态加载你所要的css文件。
function loadCss(file){
var cssTag = document.getElementById('loadCss');
var head = document.getElementsByTagName('head').item(0);
if(cssTag) head.removeChild(cssTag);
css = document.createElement('link');
css.href = "../css/mi_"+file+".css";
css.rel = 'stylesheet';
css.type = 'text/css';
css.id = 'loadCss';
head.appendChild(css);
}