【问题标题】:Is it possible to append a css property with jquery?是否可以使用 jquery 附加 css 属性?
【发布时间】:2013-12-31 07:15:31
【问题描述】:

问题:有没有办法使用 jquery 附加一些 css 属性而不更改/覆盖以前的值?

例如:如果我想将!important 添加到我的样式表应用的所有颜色属性中。用jquery可以做到吗?而不是遍历每个 css 文件并将!important 放在每个颜色属性的前面?

【问题讨论】:

  • @SridharR,感谢您的回复。在提出问题之前,我已经研究过它。您提供的链接实际上提到您需要先放置属性的一些值,然后在其后添加 !important 。我想要的是在应用了颜色属性的地方附加 !important。
  • 您能解释一下您为什么要实现这一目标吗?
  • 如果你“需要”!important 应用于样式表中的所有颜色属性,你可能做错了。
  • 不会将 !important 应用于所有颜色与将其应用于 none 具有相同的效果吗?

标签: jquery css stylesheet


【解决方案1】:

您可以将所有选择器('*')each() 一起使用,循环遍历每个元素并应用!important 规则。

$('*').each(function(){
    var c = $(this).css('color');

    $(this).attr('style', 'color: '+c+' !important;');       
});

但请注意,attr 方法将取消设置任何先前设置的内联样式规则。您需要先执行上述解决方案。

看到这个jsfiddle demo

【讨论】:

  • 这会在所有没有颜色开头的元素上创建一个带有 !important 标志的空颜色属性。你不应该至少检查一下 c 是否不为空吗?跨度>
  • 没有空的颜色属性,如果你没有设置color,浏览器会用默认的rgb(0, 0, 0)渲染,甚至达到html级别。所以你不能只检查if(c == ''),而是检查if(c == 'rgb(0, 0, 0)')
猜你喜欢
  • 1970-01-01
  • 2013-07-16
  • 2012-08-25
  • 2023-02-23
  • 2021-01-06
  • 2014-07-13
  • 2021-01-14
  • 1970-01-01
  • 2022-12-20
相关资源
最近更新 更多