我有一个JavaScript颜色选择器链接到文本输入。我想在我的几个彩色元素上更改颜色输入更新的颜色。我可以创建几个类,每种颜色(蓝色,红色,绿色等),但我想有整个24位coloe调色板,不只是其中的一些。 是否可以修改与给定CSS类关联的属性的值?如果是,那么修改这些值是否会在渲染页面上实时应用新值? 在此先感谢:)使用JavaScript修改与给定CSS类关联的CSS属性
回答
完全可能的,是的,它会实时更新。
这是一个函数来做类属性更新,绑定到一个mouseover事件(需要jQuery 1.0 +)。鼠标悬停在DIV id为myDiv将与类myColorDivs更新CSS背景颜色为白色的所有div的:
$('#myDiv').mouseover(function() {
$('.myColorDivs').css('background', '#fff');
});
请注意,修改类的CSS规则和直接使用类修改元素是有区别的。例如,如果添加了该类的新元素,则不会受到更改的影响。 – Pointy
完全正确。我只是在我的示例中修改页面中已存在的元素,而不是修改实际的类本身。 – flemingslone
谢谢你的回答!这不完全是我想要做的,但它会做到这一点。如果我需要添加一个元素,我仍然可以对其进行预编译或重新执行该样式更新,即使它在性能方面也不是很干净。 – Virus721
对不起,我来晚了...... 前几天有同样的问题,并没有发现一个实际的答案。 下面是我如何解决它(需要jQuery):
在所有其他样式表添加一个内联样式表后,您的页面可能需要与您想要更改的类。 为此样式表分配一个TITLE属性!
<style title="tomrulez" type="text/css">
/*the stylesheet to change - Note the TITLE*/
.shaded{
color:green;
}
</style>
添加此功能:
function modCSS (stylesheet, rule, attrib, newval){
$.each(document.styleSheets, function(skey, svalue) {
if(svalue.title==stylesheet){
$.each(svalue.cssRules,function (rkey,rvalue){
if (rvalue.selectorText==rule){
rvalue.style[attrib]=newval;
}
});
}
});
}
调用它像这样:
<div onclick="modCSS('tomrulez','.shaded','color','red')"> click here</div>
的参数是:
- 样式 - >的最后一个样式表的TITLE在你的 页
- 规则 - >你想改变的CSS规则
- ATTRIB - >你想改变
- 的newval规则的属性 - 你要分配给>的新值那个属性
我已经用Firefox,Chrome和IE10测试过了。 IE可能无法在旧版本中使用。但我主要开发后端的一小部分用户,如果我告诉他们不使用IE浏览器(是的,我很幸运!)
Btw。这里是一个适合我的Plunker:http://plnkr.co/edit/EMDpjU06U2p83Df8Lolq?p=preview
- 1. 使用JavaScript更改CSS类属性
- 2. 的JavaScript修改CSS类属性,而只知道类的名字
- 3. jQuery修改CSS属性
- 4. SASS与CSS属性,包括级联类
- 5. JavaScript的改变CSS属性
- 6. 修改CSS使用Javascript
- 7. 修改CSS使用JavaScript
- 8. 使用Javascript更改CSS属性/ jquery
- 9. 使用Javascript更改CSS属性
- 10. 如何使用javascript更改css属性
- 11. 使用角度来修改css类的属性
- 12. 直接使用knockout'data-bind'修改CSS类的属性
- 13. 从Javascript更改CSS属性
- 14. 改变CSS类属性
- 15. 不修改链接属性的CSS
- 16. 查找修改后的CSS/JS属性
- 17. 使用javascript修改网页的CSS
- 18. 使用.css()与变量定义css属性值的问题
- 19. 如何用javascript更改CSS属性?
- 20. 修改一个css动画属性?
- 21. 属性类css
- 22. 影响以前修改的CSS属性的css转换
- 23. CSS中的级联属性
- 24. 修改CSS与equalsign
- 25. 使用getElementsByClassName访问内联CSS属性
- 26. 如何用Javascript设置CSS类属性?
- 27. 用Vue.js更改CSS类属性
- 28. 更改链中的css属性 - JavaScript
- 29. 使用JS修改在CSS文件中声明的属性。
- 30. 如何使用CSS选择器修改兄弟的属性:focus?
是jQuery的一个选项,因为这会是最简单的方法吗? –
是的,我使用jQuery,flemingstone的答案解决了我的问题。 – Virus721
好的。下一次,在标签中指定。 –