0

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

4

2 回答 2

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>

实例| 资源

在哪里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;
}

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

于 2013-04-28T21:37:07.487 回答
0

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

于 2013-04-28T22:03:21.503 回答