使用Javascript将Div的背景颜色更改为变量值

时间:2016-02-15 15:49:29

标签: javascript html css background styles

我一直在尝试将div的颜色更改为随机生成的十六进制颜色代码,并将其传递给变量。我如何使这项工作?

HTML

<p id="demo">NULL</p>
<button onclick="generatePassword()">Generate</button>
<div id="showcase" style="background: #FFFFFF; width: 200px; height: 200px; margin: 20px; border-radius: 3px;"></div>

JAVASCRIPT

var result = document.getElementById('demo').innerHTML;

function generatePassword() {
    var length = 6,
        charset = "ABCDEF0123456789",
        retVal = "";
    for (var i = 0, n = charset.length; i < length; ++i) {
        retVal += charset.charAt(Math.floor(Math.random() * n));
    }
    document.getElementById('demo').innerHTML = "#" + retVal;
    return document.getElementById('showcase').style.backgroundColor = retVal;
}

链接到小提琴:https://jsfiddle.net/elliotsoomro/gngg89t5/5/

1 个答案:

答案 0 :(得分:0)

你几乎得到了它,在这里修复:https://jsfiddle.net/yL1uu6bz/1/

var result = document.getElementById('demo').innerHTML;

function generatePassword() {
    var length = 6,
        charset = "ABCDEF0123456789",
        retVal = "";
    for (var i = 0, n = charset.length; i < length; ++i) {
        retVal += charset.charAt(Math.floor(Math.random() * n));
    }
    var finalVal = "#" + retVal;
    document.getElementById('demo').innerHTML = finalVal;
    return document.getElementById('showcase').style.backgroundColor = finalVal;
}

我只是添加了哈希符号并以与您输出值("#" + retVal)相同的方式添加它,我将其添加到变量(finalVal)并输出相反。