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

jquery,将css属性设置为空字符串

  •  0
  • Thor  · 技术社区  · 8 年前

    我目前正在研究jquery css() 方法

    .css() 文件,it声明

    enter image description here

    然而,我不太清楚他们的意思 用于取消以前执行的任何样式修改。但是,它不会删除已在样式表或元素中应用了CSS规则的样式。 .

    所以我抬头看了看 MDN page on HTMLElement.style ,其中说明

    enter image description here

    我还通过设置 HTMLElement.style "" (即空字符串)

    enter image description here

    因此,似乎通过设置 color 的属性 d.style "" ,我已删除的值 颜色 属性,以及 颜色 属性未从中删除 d、 样式 .

    但是文档所指的是什么 但是,它不会删除已在样式表或元素中应用了CSS规则的样式。

    1 回复  |  直到 8 年前
        1
  •  4
  •   Obsidian Age    8 年前

    这个 .css() method 可以删除 内联 样式(表示为 style="" ):

    var target = document.getElementById('target');
    $('#target').css('color', '');
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    
    <div id="target" style="color: red">Target</div>

    但是 CSS样式表中定义的样式规则:

    var target=文档。getElementById(“目标”);
    $(“#目标”)。css('颜色','');
    #target {
      color: red;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    
    <div id="target">Target</div>

    也不适用于内部造型 <style> 写入同一文件的标记:

    var target=文档。getElementById(“目标”);
    $(“#目标”)。css('颜色','');
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    
    <div id="target">Target</div>
    
    <style>
    #target {
      color: red;
    }
    </style>

    这是因为 CSSStyleDeclaration object 是一个 只读 接口到 Window.GetComputedStyle() ,用于检索样式表。

    这个 Window.getComputedStyle() 方法返回一个对象,该对象报告元素的所有CSS属性的值 之后 应用活动样式表并解析这些值可能包含的任何基本计算。

    Element.style 返回a CSSStyleDeclaration 对象,并且也是只读的:

    不应通过将字符串直接指定给style特性来设置样式(如中所示 elt.style = "color: blue;" ),因为它被认为是只读的,因为style属性返回的CSSStyleDeclaration对象也是只读的。

    jQuery的 css() method 其本身尝试修改样式属性,因此只能更新内联样式:

    使用时 .css() 作为setter,jQuery修改元素的style属性。[ ... ] 将样式属性的值设置为空字符串,例如。 $( "#mydiv" ).css( "color", "" ) 从元素中删除该属性(如果元素具有) 已直接应用 ,无论是在HTML样式属性中,还是通过jQuery。方法,或通过直接对style属性进行DOM操作。[ ... ] 但是,它不会删除已在样式表或元素中应用了CSS规则的样式。