jQuery只选择带有background-color属性的标签?

时间:2013-04-28 21:35:38

标签: jquery html css

我想知道是否可以使用jQuery来选择DOM中的所有标签,并且只影响具有背景颜色属性集的标签?我想最终添加不同的配色方案,这只是背景颜色的问题。

2 个答案:

答案 0 :(得分:5)

我认为这样可行:

var hasBackground = $("*").filter(function() {
    return !!this.style.backgroundColor;
});

...之后,hasBackground将是background-color样式直接设置的一组元素(例如,不是通过样式规则)。

但我认为将“主题”应用于网站的最佳方式是交换CSS样式表,而不是单个元素的规则,如下所示:

<link rel="stylesheet" type="text/css" href="http://jsbin.com/evilit/1">
<link id="style" rel="stylesheet" type="text/css" href="http://jsbin.com/ireted/1">
<script>
(function() {

  setInterval(swapStyles, 1000);

  function swapStyles() {
    var style = $("#style");
    if (style[0].href.indexOf("ireted") === -1) {
      style[0].href = "http://jsbin.com/ireted/1";
    }
    else {
      style[0].href = "http://jsbin.com/uhoqob/1";
    }
  }

})();
</script>

Live Example | Source

http://jsbin.com/evilit/1的位置:

body {
  font-size: 26pt;
}

http://jsbin.com/ireted/1是:

body {
  background-color: yellow;
}

http://jsbin.com/uhoqob/1是:

body {
  background-color: #eee;
}

请注意,在示例中,正在加载两个样式表。第一个定义字体大小,第二个(我们每秒换出一次)定义背景颜色。

答案 1 :(得分:0)

将样式放入CSS文件时忘记执行绝对路径。