更改背景颜色反转文本jQuery

更改背景颜色反转文本jQuery,jquery,html,css,Jquery,Html,Css,我发现了一些很有希望的代码来实现随机背景css颜色和反转文本颜色,但似乎无法实现这一点。非常感谢您的帮助 $(document).ready(function() { var colors = ['#000000', '#FF3516', '#34FF17', '#2458FF']; function UpdateColors() { $(this).each(function(index) { var color = colors[Math.floor(Math.ran

我发现了一些很有希望的代码来实现随机背景css颜色和反转文本颜色,但似乎无法实现这一点。非常感谢您的帮助

$(document).ready(function() {
var colors = ['#000000', '#FF3516', '#34FF17', '#2458FF'];
function UpdateColors() {
    $(this).each(function(index) {
        var color = colors[Math.floor(Math.random() * colors.length)];
        var invertedColor = invertColor(color);
        $(this).css({
            'background-color': color,
            'color': invertedColor
        });
    });   
}
//$('div').UpdateColors();
});
在这里拉小提琴:


您需要对特定元素或元素集调用
css()
方法<代码>$(此)在您使用它的上下文中不起作用

所以,因为看起来您正试图对每个元素执行此操作:

$(document).ready(function() {
    var colors = ['#000000', '#FF3516', '#34FF17', '#2458FF'];
    $("*").each(function() {
        var color = colors[Math.floor(Math.random() * colors.length)];
        var invertedColor = invertColor(color);
        $(this).css({ 'background-color': color, 'color': invertedColor });
    });
});
如果只想在body元素上执行此操作,请将
“*”
替换为
“body”

(我假设您的
invertColor()
函数可以工作。)


编辑:我想我有点误解了你的观点。一旦扩展了
$
,就可以像在底部注释掉的调用中那样调用函数了。但是,如果您不想使用
$

这种(在我看来,稍微灵活一点的)方法,那么我的代码仍然可以工作。您需要对特定的元素或元素集调用
css()
方法<代码>$(此)在您使用它的上下文中不起作用

所以,因为看起来您正试图对每个元素执行此操作:

$(document).ready(function() {
    var colors = ['#000000', '#FF3516', '#34FF17', '#2458FF'];
    $("*").each(function() {
        var color = colors[Math.floor(Math.random() * colors.length)];
        var invertedColor = invertColor(color);
        $(this).css({ 'background-color': color, 'color': invertedColor });
    });
});
如果只想在body元素上执行此操作,请将
“*”
替换为
“body”

(我假设您的
invertColor()
函数可以工作。)


编辑:我想我有点误解了你的观点。一旦扩展了
$
,就可以像在底部注释掉的调用中那样调用函数了。但是,如果您不想使用($code>$

的方法(在我看来,稍微灵活一点),我的代码仍然可以工作。您没有扩展jQuery,因此它无法看到$('div').UpdateColors()函数

我对其进行了调整,以便您可以这样使用函数:
jQuery.fn.UpdateColors=function(){…}

看到这把小提琴了吗


但是,由于没有在任何地方定义invertColor函数,因此仍然会出现错误

您没有扩展jQuery,因此它无法看到$('div').UpdateColors()函数

我对其进行了调整,以便您可以这样使用函数:
jQuery.fn.UpdateColors=function(){…}

看到这把小提琴了吗


但是,由于没有在任何地方定义invertColor函数,因此仍然会出现错误

方法invertColor在哪里这可能是使用元素调用方法的可能性,但是没有定义函数
invertColor
。我在下面提供了一个答案,但是,没有定义invertColor函数。如果您没有反转颜色代码,请告诉我,我会将该函数添加到小提琴中。看起来我错过了。让我试着找到代码…很抱歉。方法invertColor在哪里?这可能是使用元素调用方法的可能性,但没有定义函数
invertColor
。我在下面提供了答案,但是,没有定义invertColor函数。如果您没有反转颜色代码,请告诉我,我会将该函数添加到小提琴中。看起来我错过了。让我试着找到那个代码…很抱歉。