当前位置: 首页 > 面试题库 >

如何使用jQuery更改CSS类规则?

东郭自强
2023-03-14
问题内容

谁能帮助我,我有两个问题。

  1. 我想做的是使用jQuery动态更改CSS类规则。
    .classname {color:red; font-size:14px;}
    

在上面的示例中,我有一个.classname现在使用jQuery
命名的类,我想仅通过.classname添加css内联来更改字体大小,而不更改颜色。

  1. 我要创建.classname更改并将其保存到文件,请记住,将存在完整的样式表或没有类名将保存在文件中。

我该怎么做才是最简单,更好的方法?

谢谢!


问题答案:

据我所知,没有jQuery的方法可以做到这一点。可能有一些jQuery插件,但我不知道。

基本上,您可以使用对象的styleSheets属性来解决第一个问题document。这比需要走到相当深的对象链要复杂得多,但是尽管如此,它仍可在包括Internet
Explorer 6在内的所有主要浏览器中使用。以下是概念证明。CSS位于STYLE标记内,但也可以与外部CSS一起使用。我让你做抽象。

概念证明

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>
<head>
<title></title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="imagetoolbar" content="false">
<meta http-equiv="imagetoolbar" content="no">
<style type="text/css">
.classname {
 color: red;
 font-size: 14px;
}
</style>
<script type="text/javascript">
window.onload = function() {
    document.getElementById("button").onclick = function() {
        var ss = document.styleSheets;

        for (var i=0; i<ss.length; i++) {
            var rules = ss[i].cssRules || ss[i].rules;

            for (var j=0; j<rules.length; j++) {
                if (rules[j].selectorText === ".classname") {
                    rules[j].style.color = "green";
                }
            }
        }
    };
}
</script>
</head>
<body>

<h1 class="classname">Some red text</h1>

<button id="button">Make text green</button>

</body>
</html>

对于您的第二个问题,我没有时间编写解决方案,但是它涉及到如上所述读取CSS声明并使用cssTextCssRule对象的属性来构建字符串,该字符串最终将使用来发送到服务器。
Ajax POST请求。服务器端是您的事。

希望能帮助到你



 类似资料:
  • 问题内容: 我有一个CSS课 我想使用Jquery在事件上执行类似的操作: 这行不通。这是错误的方法吗?我应该使用addClass()和removeClass()吗? 编辑:我想出了我的问题。实际上,此命令是有效的。在我的特定应用程序中,在使用命令之前,我没有使用类创建元素,因此在创建元素时,没有任何改变。 基本上,此命令不会更改CSS样式规则,只会更改使用该类的元素。 问题答案: 将在页面上找到

  • 问题内容: 有没有一种方法可以使用jQuery更改CSS类的属性,而不是元素属性? 这是一个实际的例子: 我上课有一个div 我想更改类背景属性,而不是已分配类背景的元素。 如果我使用jQuery .css()方法做到这一点: 它会影响现在具有class的元素。到这里为止一切都很好。但是,如果我进行Ajax调用,并在class中插入更多div ,则这些背景将不会具有绿色背景,而它们将具有初始背景。

  • 问题内容: 我有以下代码 如何将标签替换为标签,但保留所有其他属性和信息? 问题答案: 这是使用jQuery的一种方法: 更新 ,这是一个插件:

  • 问题内容: 我正在尝试设置主体的背景图像,但是仅在使用class的地方设置。HTML如下: 基本上,我想强制页面使用以下CSS代替: 我正在尝试使用Greasemonkey这样做,如果有任何不同。有人知道我该怎么做吗?我从以下内容开始,但是运气还不太好: 问题答案: 为此,只需使用CSS级联。使用将样式表添加到页面。 注意: 我们使用该标志来覆盖某些潜在的冲突。 使用 (或使用手写笔,请参见下文)

  • 问题内容: 是否可以更改标签(或)以将其内容预格式化,就像仅使用CSS 的标签一样? 问题答案: 查看W3CCSS2.1默认样式表或CSS2.2工作草案。复制PRE的所有设置,并将其放入自己的班级。

  • 问题内容: 我想要类似的东西: 问题答案: 类更改时不会引发任何事件。另一种方法是在以编程方式更改类时手动引发事件: 更新 这个问题似乎正在吸引一些访问者,因此这里是一种更新方法,可以使用该方法而不必使用new修改现有代码: 请注意,只能用于更新的浏览器,特别是Chrome 26,FF 14,IE 11,Opera 15和Safari6。如果需要支持旧版浏览器,则需要使用我在第一个示例中概述的方法