更改具有相同颜色的元素的背景颜色

时间:2011-09-23 14:35:48

标签: javascript jquery css html background-color

我正在尝试在这里创建一个简单的主题系统。我有几个红色背景颜色的元素。我还有一个按钮,将元素背景颜色更改为绿色。

我正在尝试编码,但我无法弄清楚如何选择并将所有红色元素的bg颜色更改为绿色!

例如,我有4个div。其中两个有一个红色标题,当我点击按钮时,这些标题背景颜色必须更改为绿色。这里没关系,但问题是div是动态生成的,所以我是否循环所有页面以找到红色bg颜色?有人能让我高兴吗? =)

非常感谢! =)

3 个答案:

答案 0 :(得分:1)

我认为最好的解决方案是为每个主题使用不同的样式表,并将当前主题值保存在SESSION或COOKIE中,或者只将其作为URL参数传递。但那将是一个服务器端解决方案。 在客户端,您可以为每个主题使用不同的类,并使用.toggleClass()

在按钮推送事件上切换它们
$('.green').toggleClass('red green');

答案 1 :(得分:0)

最简单的方法是为您正在使用的每种背景颜色设置一个特定的CSS类。例如:

.color-red{ background-color: #FF0000; }
.color-green{ background-color: #00FF00; }

一旦你这样做,你可以选择CSS类并设置CSS类:

$('#button-togreen').click(function(){
  $('.color-red').removeClass('color-red').addClass('color-green');
}

这是一种圆满的方式,但是没有简单的方法来选择CSS属性(要做到这一点,你必须选择页面的所有元素,然后检查它们中的每一个背景颜色属性,这将是非常低效的......)

答案 2 :(得分:0)

我不知道你的标题是什么意思,但我认为这应该做你想要的:

$('.myDivs').filter(function(index){
  return $(this).css('color') == 'red';
}).css('color', 'green');