小编典典

使用jQuery更改CSS类属性

css

有没有一种方法可以使用jQuery更改CSS类的属性,而不是元素属性?

这是一个实际的例子:

我上课有一个div red

.red {background: red;}

我想更改类red背景属性,而不是已red分配类背景的元素。

如果我使用jQuery .css()方法做到这一点:

$('.red').css('background','green');

它会影响现在具有class的元素red。到这里为止一切都很好。但是,如果我进行Ajax调用,并在redclass中插入更多div
,则这些背景将不会具有绿色背景,而它们将具有初始red背景。

我可以再次调用jQuery
.css()方法。但是我想知道是否有一种方法可以更改类本身。请考虑这只是一个基本示例。


阅读 938

收藏
2020-05-16

共1个答案

小编典典

您不能直接使用jQuery更改CSS属性。但是您至少可以通过两种方式达到相同的效果。

从文件动态加载CSS

function updateStyleSheet(filename) {
    newstylesheet = "style_" + filename + ".css";

    if ($("#dynamic_css").length == 0) {
        $("head").append("<link>")
        css = $("head").children(":last");

        css.attr({
          id: "dynamic_css",
          rel:  "stylesheet",
          type: "text/css",
          href: newstylesheet
        });
    } else {
        $("#dynamic_css").attr("href",newstylesheet);
    }
}

上面的示例复制自:

动态添加样式元素

$("head").append('<style type="text/css"></style>');
var newStyleElement = $("head").children(':last');
newStyleElement.html('.red{background:green;}');
2020-05-16