【问题标题】:Dynamically delete a style from head tag with JQuery使用 JQuery 从 head 标签中动态删除样式
【发布时间】:2014-12-05 07:37:07
【问题描述】:

我正在动态创建如下样式并将其附加到<head>

 $("<style type='text/css'> .HP{  background-color: "Red "} </style>").appendTo("head");

在页面上我想删除一个特定的 css 类并重新添加不同的值。如何在 JQuery 中做到这一点。

【问题讨论】:

  • 只有一条规则,还是整个样式元素? (我注意到 example 只有一个类规则,但是...)
  • 旁注:颜色名称不加引号,也不大写:background-color: red
  • 只是动态添加一个规则到

标签: jquery css styles


【解决方案1】:

您可以为样式属性添加 ID

 $("<style id='myStyle' type='text/css'> .HP{  background-color: \"Red \"} </style>").appendTo("head");

然后你可以简单地使用 ID 选择器和.remove() like

$('#myStyle').remove()

【讨论】:

  • 我刚刚尝试使用 .remove() 但没有任何反应,它仍然存在,所以我使用了 $("#myStyle").html("");在 .remove() 之后,现在我可以看到变化
【解决方案2】:

您可以使用css(),无需更改您的主样式表,

$('.HP').css('color','red !important');

以上内容将使所有具有HP Class的元素的字体颜色为red

$('.HP').css('background-color','green !important');// change your bgcolor red to green

要删除最后添加的style,试试这个,

$('head style:last').remove();

此外,如果您要动态添加多个样式,则要删除特定样式,请为样式标记提供 idremove() 之类的,

$('#STYLE-ID-TO-BE-Removed').remove()

【讨论】:

  • 这添加了一个内联样式,想象一下如果你动态添加元素,每次添加至少一个元素时,你都需要再次调用 css()。在那种情况下似乎效率不高
【解决方案3】:

将 ID 添加到您要删除的样式。 然后在 JQuery 中使用

$("#styleId").remove();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-23
    • 1970-01-01
    • 2012-04-21
    • 2012-09-26
    • 2019-06-23
    • 2014-10-08
    • 1970-01-01
    • 2014-09-13
    相关资源
    最近更新 更多