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

使用JavaScript处理CSS

段劲
2023-03-14
问题内容

我想使用JavaScript来操纵CSS。首先,它被认为是一个不错的小脚本,可以为我的手风琴菜单尝试不同的颜色,以及来自输入字段的不同背景/标题/内容-/
…背景颜色。

我了解如何使用js获取输入值。

我了解CSS是通过使用操作getElementById()getElementsByClassName()getElementsByTag(),和getElementsByName()

现在,问题是我的CSS看起来像这样:

.accordion li > a {
  /* some css here */
}
.sub-menu li a {
/* some css here */
}
.some-class hover:a {
/* css */
}
.some-other-class > li > a.active {
/* css */
}

如何使用JavaScript更改此类样式的属性?


问题答案:

无法使用JavaScript直接操作某些CSS样式。相反,您可以在样式表本身中更改规则,如下所示:

var changeRule = function(selector, property, value) {
        var styles = document.styleSheets,
            n, sheet, rules, m, done = false;
        selector = selector.toLowerCase();
        for(n = 0; n < styles.length; n++) {
            sheet = styles[n];      
            rules = sheet.cssRules || sheet.rules;
            for(m = 0; m < rules.length; m++) {
                if (rules[m].selectorText.toLowerCase() === selector) {
                    done = true;
                    rules[m].style[property] = value;
                    break;
                }
            }
            if (done) {
                break;
            }
        }
    };
changeRule('div:hover', 'background', '#0f0');

selector必须与现有选择器完全匹配,仅选择器文本之间的空格{会被忽略。

您可以开发代码以查找和更改选择器名称的部分匹配项,或者仅检查特定的样式表而不是全部。实际上,当拥有数十个带有数千条规则的样式表时,它也非常昂贵。

毫无疑问,伪代码无法使用此代码段进行操作。



 类似资料:
  • 问题内容: 我正在连接到一个网站,正在登录。 该网站将我重定向到新页面,并且Mechanize处理所有cookie和重定向作业,但是,我找不到最后一页。我使用Firebug并再次完成了相同的工作,然后发现我必须通过Mechanize传递另外两页。 我快速浏览了一下页面,发现有一些JavaScript和HTML代码,但由于它看起来不像普通的页面代码而无法理解。这些页面是做什么用的?他们如何重定向到其

  • 问题内容: 我正在寻找一种数学解决方案,该解决方案可以处理真实(长,大,大,风暴)数字。我还没有发现任何东西,但是我不想现在这个问题还没有解决。我正在寻找一种简单的Number解决方案,例如MicrosoftExcelPrecision(30位十进制)或BigInteger(Java)解决方案。当然是用Java语言编写的。 问题答案: BigInt现在是Firefox和Chrome的一部分; 你不

  • 这看起来真的很奇怪。。。 我有一些JSON。。。 但是当我试图解析它并使用它时。。。 什么都没有出现,但是如果我只是做$("p"). text(json);它告诉我这是一个对象,我可以看到JSON在Firebug中是正确的,有什么想法吗?

  • 本文向大家介绍如何使用JavaScript处理绑定事件?,包括了如何使用JavaScript处理绑定事件?的使用技巧和注意事项,需要的朋友参考一下 要使用JavaScript处理事件,请在任何元素上对鼠标单击事件使用click。 示例 您可以尝试运行以下代码,以了解如何使用JavaScript处理绑定事件:

  • 问题内容: 我想提醒一个字符串的每个字母,但是我不确定该怎么做。 所以,如果我有: 我希望能够分别警告T,h,i,s等。这仅仅是我正在研究的一个想法的开始,但是我需要知道如何分别处理每个字母。 我想使用jQuery,并考虑在测试字符串的长度后可能需要使用split函数。 有想法吗? 问题答案: 如果警报的顺序很重要,请使用以下命令: 如果警报的顺序无关紧要,请使用以下命令:

  • 问题内容: 我目前正在使用node.js应用程序,并且遇到了通常的异步代码问题。 我正在Node的HTTP模块之上实现服务服务器。 该服务器支持(类似表达)路由。例如,我有如下代码: 服务器需要能够承受故障,当传递给任何函数的问题出现时,我不想使整个服务器崩溃。当我编写如下代码时,会发生问题: 我看不到如何在这里捕获错误。我不想因一个服务器端故障而使服务器崩溃,而是要服务500个。 我能够提出的唯