代码之家  ›  专栏  ›  技术社区  ›  user160820

用javascript删除CSS样式

  •  1
  • user160820  · 技术社区  · 14 年前

    我有普通的HTML输入字段,根据窗口/浏览器设置,这些字段有默认边框。

    在表单验证期间,我将元素的边框设置为红色。例如

    elem.style.border = "1px solid #ff0000";
    

    如果用户更正了输入,我希望删除红色边框,以便输入字段再次包含 默认边框。

    4 回复  |  直到 14 年前
        1
  •  4
  •   meder omuraliev    14 年前

    如果你只是切换类,可能会更容易。

           var addClass = function( c, e ) {
            e.className += ' ' + c;
            },
    
            removeClass = function( c, e ) {
            e.className = e.className.replace( c, '' );
            };
    

    用途:

    addClass( 'redBorder', el);
    removeClass( 'redBorder', el);
    

    CSS:

    .redBorder { border:1px solid red; }
    
        2
  •  1
  •   Kangkan    14 年前

    最好的方法是添加一个CSS类来设置边框。可以将类添加为

    .redBorder{
      border: "1px solid #FF0000";
    }
    

    每当需要设置这个类时,可以将它添加为元素的类。这将简化重置相同的过程。

        3
  •  1
  •   Tim Down    14 年前

    在非IE浏览器中,可以使用 removeProperty() 方法 style 对象:

    elem.style.removeProperty("border");
    

    但是,正如Kangkan建议的那样,添加和删除CSS类更有意义,因为这将在所有主要浏览器中都有效。

        4
  •  0
  •   mplungjan Gvidas    14 年前

    根据您的需要或添加CSS的可能性,有两种方法

    在多个类的情况下,替换类是一个更好的整体解决方案-例如,参见其他答案

    <style>
    .red { border:1px solid red }
    .black { border:1px solid black }
    </style>
    
    <input class="black" type="text" onKeyUp="this.className = isNaN(this.value)?'red':'black'">
    <input class="black" type="text" onKeyUp="this.style.border = isNaN(this.value)?'1px solid red':'1px solid black'">