Skip to content Skip to sidebar Skip to footer

Change An Element's Background Color When Clicking A Different Element

I am expecting the element, id='colorDisp' to change color when I run one of the functions below, but instead the body element changes color. Code below: Example output for the

Solution 1:

You need to select the td element with id colorDisp and not the document.body. You can also pass the color to one single JavaScript function which applies it to the element.

function colorize(color)
{
       document.getElementById("colorDisp").style.background = color;
}
<body>
    <center>
        <table style="/*padding-top: 200px;*/font-size:45">
            <tr>
                <td style="background-color:#ff0040"><a href = "#" onclick = "colorize('red')">red</a></td>
                <td style="background-color:#00bfff"><a href = "#" onclick = "colorize('blue')">blue</a></td>
                <td rowspan="5" width="300px" id="colorDisp" style="background-color:black"></td>
            </tr>
            <tr>
                <td style="background-color:#ffff00"><a href = "#" onclick = "colorize('yellow')">yellow</a></td>
                <td style="background-color:#80ff00"><a href = "#" onclick = "colorize('green')">green</a></td>
            </tr>
            <tr>
                <td style="background-color:#ffbf00"><a href = "#" onclick = "colorize('orange')">orange</a></td>
                <td style="background-color:#8000ff"><a href = "#" onclick = "colorize('violet')">violet</a></td>
            </tr>
            <tr>
                <td style="background-color:#808080"><a href = "#" onclick = "colorize('grey')">grey</a></td>
                <td style="background-color:#000000"><a href = "#" onclick = "colorize('black')">black</a></td>
            </tr>
            <tr>
                <td style="background-color:#ffe6e6"><a href = "#" onclick = "colorize('#ffe6e6')">cream</a></td>
                <td style="background-color:#ff00bf"><a href = "#" onclick = "colorize('#ff00bf')">fushia</a></td>
            </tr>
        </table>

    </center>
</body>

Solution 2:

You should replace body by the the tag you want to display the color and in your code, it's getElementById('colorDisp'). Here is solution:

function red()
    {
        document.getElementById('colorDisp').style.backgroundColor = "red";
    }
function blue()
    {
        document.getElementById('colorDisp').style.backgroundColor = "blue";
    }
function yellow()
    {
        document.getElementById('colorDisp').style.backgroundColor = "yellow";
    }
function green()
    {
        document.getElementById('colorDisp').style.backgroundColor = "green";
    }   
function orange()
    {
        document.getElementById('colorDisp').style.backgroundColor = "orange";
    }
function violet()
    {
        document.getElementById('colorDisp').style.backgroundColor = "violet";
    }
function grey()
    {
        document.getElementById('colorDisp').style.backgroundColor = "grey";
    }
function black()
    {
        document.getElementById('colorDisp').style.backgroundColor = "black";
    }
function cream()
    {
        document.getElementById('colorDisp').style.backgroundColor = "#ffe6e6";
    }
function fushia()
    {
        document.getElementById('colorDisp').style.backgroundColor = "#ff00bf";
    }
function white()
    {
        document.getElementById('colorDisp').style.backgroundColor = "white";
    }
<body>
    <center>
        <table style="padding-top: 200px;font-size:45">
            <tr>
                <td style="background-color:#ff0040"><a href = "#" onclick = "red()">red</a></td>
                <td style="background-color:#00bfff"><a href = "#" onclick = "blue()">blue</a></td>
                <td rowspan="5"width="300px" id="colorDisp" style="background-color:black"></td>
            </tr>
            <tr>
                <td style="background-color:#ffff00"><a href = "#" onclick = "yellow()">yellow</a></td>
                <td style="background-color:#80ff00"><a href = "#" onclick = "green()">green</a></td>
            </tr>
            <tr>
                <td style="background-color:#ffbf00"><a href = "#" onclick = "orange()">orange</a></td>
                <td style="background-color:#8000ff"><a href = "#" onclick = "violet()">violet</a></td>
            </tr>
            <tr>
                <td style="background-color:#808080"><a href = "#" onclick = "grey()">grey</a></td>
                <td style="background-color:#000000"><a href = "#" onclick = "black()">black</a></td>
            </tr>
            <tr>
                <td style="background-color:#ffe6e6"><a href = "#" onclick = "cream()">cream</a></td>
                <td style="background-color:#ff00bf"><a href = "#" onclick = "fushia()">fushia</a></td>
            </tr>
        </table>

    </center>

</body>

Solution 3:

You should have something like this. The code is much nicer (Here is the example http://plnkr.co/edit/FSwM1fDyzB7YgT4Or4B2?p=preview)

function updateColor(event)
{
    var color = event.parentElement.style.backgroundColor;
    document.getElementById('colorDisp').style.backgroundColor = color;
}

Html:

<table style="padding-top: 200px;font-size:45">
            <tr>
                <td style="background-color:#ff0040"><a href = "#" onclick = "updateColor(this)">red</a></td>
                <td style="background-color:#00bfff"><a href = "#" onclick = "updateColor(this)">blue</a></td>
                <td rowspan="5"width="300px" id="colorDisp" style="background-color:black"></td>
            </tr>
            <tr>
                <td style="background-color:#ffff00"><a href = "#" onclick = "updateColor(this)">yellow</a></td>
                <td style="background-color:#80ff00"><a href = "#" onclick = "updateColor(this)">green</a></td>
            </tr>
            <tr>
                <td style="background-color:#ffbf00"><a href = "#" onclick = "updateColor(this)">orange</a></td>
                <td style="background-color:#8000ff"><a href = "#" onclick = "updateColor(this)">violet</a></td>
            </tr>
            <tr>
                <td style="background-color:#808080"><a href = "#" onclick = "updateColor(this)">grey</a></td>
                <td style="background-color:#000000"><a href = "#" onclick = "updateColor(this)">black</a></td>
            </tr>
            <tr>
                <td style="background-color:#ffe6e6"><a href = "#" onclick = "updateColor(this)">cream</a></td>
                <td style="background-color:#ff00bf"><a href = "#" onclick = "updateColor(this)">fushia</a></td>
            </tr>
        </table>

Solution 4:

You do not need multiple function for this. Try the following:

function changeColor(color)
{
    document.getElementById('colorDisp').style.backgroundColor = color;
}
<center>
        <table style="padding-top: 10px;font-size:45">
            <tr>
                <td style="background-color:#ff0040"><a href = "#" onclick = "changeColor('red')">red</a></td>
                <td style="background-color:#00bfff"><a href = "#" onclick = "changeColor('blue')">blue</a></td>
                <td rowspan="5"width="300px" id="colorDisp" style="background-color:black"></td>
            </tr>
            <tr>
                <td style="background-color:#ffff00"><a href = "#" onclick = "changeColor('yellow')">yellow</a></td>
                <td style="background-color:#80ff00"><a href = "#" onclick = "changeColor('green')">green</a></td>
            </tr>
            <tr>
                <td style="background-color:#ffbf00"><a href = "#" onclick = "changeColor('orange')">orange</a></td>
                <td style="background-color:#8000ff"><a href = "#" onclick = "changeColor('violet')">violet</a></td>
            </tr>
            <tr>
                <td style="background-color:#808080"><a href = "#" onclick = "changeColor('grey')">grey</a></td>
                <td style="background-color:#000000"><a href = "#" onclick = "changeColor('black')">black</a></td>
            </tr>
            <tr>
                <td style="background-color:#ffe6e6"><a href = "#" onclick = "changeColor('#ffe6e6')">cream</a></td>
                <td style="background-color:#ff00bf"><a href = "#" onclick = "changeColor('#ffe6e6')">fushia</a></td>
            </tr>
        </table>

    </center>

Post a Comment for "Change An Element's Background Color When Clicking A Different Element"