使用JQuery动态从head标签中删除样式

7
我会动态地创建以下样式,然后将其附加到标签中。
 $("<style type='text/css'> .HP{  background-color: "Red "} </style>").appendTo("head");

我想在页面上删除特定的CSS类,并用不同的值重新添加。在jQuery中如何实现这一点。


你是否正在尝试直接修改样式表 - grc
1
只需要一个规则,还是整个样式元素?(我注意到示例只有一个类规则,但是...) - T.J. Crowder
2
旁注:颜色名称不需要加引号,也不需要大写: background-color: red - T.J. Crowder
刚刚在动态地向<head>添加一条规则。 - V.B
3个回答

23

您可以将ID添加到样式属性中

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

然后你可以直接使用ID选择器和.remove(),如下:

$('#myStyle').remove()

我刚刚尝试使用 .remove(),但是没有任何反应,它仍然存在,所以我在 .remove() 之后使用了 $("#myStyle").html("");,现在我可以看到变化了。 - Martin Cisneros Capistrán

2
你可以使用css(),无需修改主样式表,例如:
$('.HP').css('color','red !important');

上述代码将使所有具有“HP Class”的元素字体颜色变为红色。
$('.HP').css('background-color','green !important');// change your bgcolor red to green

如果要移除最近添加的 style,请使用以下方法:

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

另外,如果你正在动态添加多个样式,则为了去除特定的样式,请为style标签指定一个id,并像这样remove()它:

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

这会添加一个内联样式,想象一下如果您动态添加元素,每次至少添加一个元素时,您都需要再次调用css()。在那种情况下似乎不太高效。 - William Ardila

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接