我想知道是否可以使用jQuery来选择DOM中的所有标签,并且只影响具有背景颜色属性集的标签?我想最终添加不同的配色方案,这只是背景颜色的问题。
答案 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>
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文件时忘记执行绝对路径。