【问题标题】:How modify a property of external CSS file using jQuery / Javascript如何使用 jQuery / Javascript 修改外部 CSS 文件的属性
【发布时间】:2015-11-18 15:46:49
【问题描述】:

我想使用 javascript/jquery 更改外部 CSS 文件的属性

示例;在我正在使用的网页中:

<!-- Star rating -->
<link href="css/star-rating.min.css" rel="stylesheet" />

我想访问和更改特定样式的颜色(在外部 CSS 中找到):

是否存在使用 JavaScript 或 jQuery 的方法来做到这一点?

【问题讨论】:

标签: javascript jquery html css


【解决方案1】:

好的,我们来分析一下……

您想更改代码的 CSS 规则。 我假设您想将其作为对浏览器中发生的事情的响应......

物理上更改 CSS 文件中的行并非不可能,但我想这不是您想要的。

最好的选择可能是通过 javascript 更改 CSS 样式,作为对使您想要更改样式的事件或情况的反应。使用 jquery:

$(".rating-container").css("color", "#f0f");

作为替代方案,对不同的元素状态使用不同的 CSS 类,只需将类更改为您的 js 代码:

$("#myAffectedElement").removeClass("oldColorClass");
$("#myAffectedElement").addClass("newColorClass");

这将允许您直接修改单个元素的样式,而不是更改每个最初分类的元素。

【讨论】:

    【解决方案2】:

    我创建了一个js方法来实现这个:

    function getStyleSheet(cssName, rule) {
        for (i = 0; i < document.styleSheets.length; i++) {
            if (document.styleSheets[i].href.toString().indexOf(cssName) != -1)
                for (x = 0; x < document.styleSheets[i].rules.length; x++) {
                    if (document.styleSheets[i].rules[x].selectorText.toString().indexOf(rule) != -1)
                        return document.styleSheets[i].rules[x];
                }
    
        }
    
        return null;
    }
    

    要更改任何属性只需要以下内容:

    getStyleSheet('star-rating', '.rating-container .rating-stars').style.color = "#AFAFAF";
    

    【讨论】:

    • 太棒了..正是我在寻找的。您能否帮助我如何下载或将更新的 css 复制到新文件。 TIA
    • 我有同样的问题,我如何下载或复制更新的 css 到新文件,因为我也无法在源中找到这些更改。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-22
    • 2014-07-19
    • 2012-03-29
    • 2013-02-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多