search

Home  >  Q&A  >  body text

javascript - 一次清除js设定的样式

如何使用js或者其他方法一次性清除由js所设定的样式。

伊谢尔伦伊谢尔伦2902 days ago598

reply all(3)I'll reply

  • 怪我咯

    怪我咯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>  
    

    reply
    0
  • 大家讲道理

    大家讲道理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(';') + ';';
    

    reply
    0
  • 大家讲道理

    大家讲道理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);
    }
    

    reply
    0
  • Cancelreply