我需要帮助!
假设我的页面中有一个元素在滚动时会改变背景颜色。我想在更改背景时更改其中 a 标签的颜色,我尝试在下面写这样的东西,但是没有用!当背景发生变化时,我如何告诉 jquery 采取行动?
$(function () {
var background = $("backtotop").css('background', 'black');
if (background = true) {
$('a').css('color', 'white')
}
if (background = false) {
$('a').css('color', 'green')
}
});
您的代码有几个语法问题:
$("backtotop")
不是有效的选择器,这会选择 html 标签 backtotop
而我不知道这样的标签。而是使用 ID 选择器 (#
) 或类选择器 (.
)。
background
在这里是一个 jQuery 对象,没有 bool 值。
if (background = true) {
,在这里您将值 true
设置为 background
。所以这条语句总是正确的,你必须使用比较运算符 ==
来代替。
$(function () {
var background = $("#backtotop").css('background-color', 'black');
var backgroundcolor = background.css('background-color');
if (backgroundcolor == 'rgb(0, 0, 0)') {
$('a').css('color', 'white')
} else {
$('a').css('color', 'green')
}
});
注意:getter .css()
函数将返回设置背景颜色的 rgb 值。
Demo
第二种使用类的方法:
$(function () {
var background = $("#backtotop").addClass('black')
if (background.hasClass('black')) {
$('a').css('color', 'white')
} else {
$('a').css('color', 'green')
}
});
Demo
引用
.css()
.addClass()
.hasClass
我是一名优秀的程序员,十分优秀!