我需要帮助!
让我们说我的页面中有一个元素在滚动时会改变背景颜色。 我想改变它内部标签的颜色,改变背景,我试着在下面写下这样的东西,但它确实没有用! 当背景发生变化时,如何告诉jquery采取行动?
$(function () {
var background = $("backtotop").css('background', 'black');
if (background = true) {
$('a').css('color', 'white')
}
if (background = false) {
$('a').css('color', 'green')
}
});
答案 0 :(得分:2)
您的代码有几个语法问题:
$("backtotop")
没有有效的选择器,这会选择html-tag backtotop
而我不知道这样的标签。而是使用ID选择器(#
)或类选择器(.
)。
background
这里是一个jQuery-Object,没有布尔值。
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值。
使用类的第二种方法:
$(function () {
var background = $("#backtotop").addClass('black')
if (background.hasClass('black')) {
$('a').css('color', 'white')
} else {
$('a').css('color', 'green')
}
});
<强>参考强>
答案 1 :(得分:1)
$(function(){var background=$("backtotop").css('background','black')
if(background == true){$('a').css('color','white')}
if(background == false){$('a').css('color','green')}});
答案 2 :(得分:1)
如果您从下面的行获取字符串
var background=$("backtotop").css('background','black');
然后这样做
if (background == "true") {
$('a').css('color', 'white')
}
if (background == "false") {
$('a').css('color', 'green')
}
如果你得到布尔值,那么写如下
if (background) {
$('a').css('color', 'white')
} else {
$('a').css('color', 'green')
}
答案 3 :(得分:0)
非常感谢您的回答。 我认为最简单的方法是使用.addClass和.removeClass,因为没有任何建议的方法试图修复我的代码。
然而,这是一种耻辱,因为我认为让它作为背景变化的想法非常酷。 我认为问题是变量不与if语句交互。在代码上
$(function () {
var background = $("backtotop").css('background', 'black');
if (background = true) {
$('a').css('color', 'white')
}
if (background = false) {
$('a').css('color', 'green')
}
});
我使用single = a标签的颜色永久保持白色, 如果我使用double ==颜色保持绿色。