Javascript 更改背景颜色以进行死区像素测试

Javascript 更改背景颜色以进行死区像素测试,javascript,html,Javascript,Html,我试过这个密码 function myFunction() { var bg = document.bgColor; if (bg = "black") { document.getElementById("myDIV").style.backgroundColor = "white"; } else if (bg = "white") {

我试过这个密码

function myFunction() {
                var bg = document.bgColor;
                if (bg = "black") {
                    document.getElementById("myDIV").style.backgroundColor = "white";
                } else if (bg = "white") {
                    document.getElementById("myDIV").style.backgroundColor = "red";
                } else if (bg = "red") {
                    document.getElementById("myDIV").style.backgroundColor = "green";
                } else if (bg = "green") {
                    document.getElementById("myDIV").style.backgroundColor = "blue";
                }
但它不会改变背景颜色,有什么问题吗

附言:我是新来编码的,对不起你的眼睛:/

编辑:

我用这个“谢谢你,疲倦的冒险家”修改了密码

var colors = ["black", "white", "red", "green", "blue"];
var color = 0;    

function change_color(){
    var e = document.getElementById("myDIV");

    if(color >= (colors.length - 1)) color = 0;
    else color++;

    e.style.background = colors[color];
}

var timer = setTimeout(change_color, 1000);
但我想在bg变蓝后再给大家发一个页面,窗口。位置。替换。。。;有帮助吗

要检查某个值是否等于其他值,请使用运算符==。 我为元素定义了一个变量e,这样重复次数就少了。 如果在If、else、while或for块中只有一个动作可以执行,那么可以去掉大括号,并将其写在一行中,以保持视觉清晰度。 这是你的固定密码

function myFunction() {
    var bg = document.bgColor;
    var e = document.getElementById("myDIV");

    if (bg == "black") e.style.backgroundColor = "white";
    else if (bg == "white") e.style.backgroundColor = "red";
    else if (bg == "red") e.style.backgroundColor = "green";
    else if (bg == "green") e.backgroundColor = "blue";
}
你说你在做一个死像素测试。您可以定义要通过数组循环的颜色:

var colors = ["black", "white", "red", "green", "blue"];
您可以使用setTimeoutcallback,ms函数设置执行代码前的超时或等待。 可以将变量设置为函数,也可以将函数作为参数传递给Javascript中的另一个函数。因此,如果您希望每X毫秒更改一次这些颜色,请使用以下命令:

var colors = ["black", "white", "red", "green", "blue"];
var color = 0;    

function change_color(){
    var e = document.getElementById("myDIV");

    if(color >= (colors.length - 1)) color = 0;
    else color++;

    e.style.background = colors[color];
}

var timer = setTimeout(change_color, 1000);
颜色是字符串数组,颜色是当前颜色的索引。因此,当color为0时,通过执行colors[color],您将访问数组的第一个元素,因为数组从0开始,即黑色。请注意引号

函数change_color将一个元素的背景色设置为数组中的下一个元素的背景色。它还确保索引指针颜色不会超出数组。

确保id=myDIV的标记以区分大小写的方式存在,确保标记可见。当您确定标签显示正确时,请确保调用myFunction;也许是这样:

setTimeout(myFunction, 30000); //It will run twice/minute
编辑:

此外,函数中存在语法错误,在if和else条件中使用赋值运算符of=而不是等于运算符of===。

第一步: 是否将jquery库导入到代码中

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
如果是: 您是否在代码中调用此函数

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

我运行你的页面调用函数myFunction;在js代码上,它对我来说是成功的。告诉我这是否适合您

您正在调用函数吗?比如什么是触发器?console.logbg;即使纠正了这些拼写错误,我也怀疑它是否仍然有效。@epascarello为什么?大多数浏览器都不返回命名颜色。@epascarello你的意思是不支持颜色别名?我很确定他们都支持基本颜色,比如白色、黑色等。顺便问一下,我可以把人们发送到另一个页面吗?我的意思是背景变成蓝色后。问题显然是在if条件下:if bg=black应该是if bg=black@WearyAdventurer,谢谢你指出,我没有注意到。