在几个上更改一个DIV颜色

时间:2014-10-08 15:15:59

标签: jquery html css background-color color-picker

我正在尝试通过单击其中一个图像来更改div背景颜色。 新的DIV颜色应该是图像ID的第二部分。

CSS

#box {
width: 200px;
height: 200px;
background-color: #3FA5D5;
}
.black {
background-color: #000000 !important;
}
.red {
background-color: #990000 !important;
}
.blue {
background-color: #990000 !important;
}
.green {
background-color: #990000 !important;
}

HTML

<div id="box">BGCOLOR TO CHANGE HERE</div>
<br />
<img id="color black" src="images/black.png" alt="" />
<img id="color red" src="images/red.png" alt="" />
<img id="color blue" src="images/blue.png" alt="" />
<img id="color green" src="images/green.png" alt="" />

4 个答案:

答案 0 :(得分:1)

您的ID值无效。使用数据属性来存储&#34;元数据&#34; (例如颜色名称或十六进制值等):

e.g:

<img class="color" data-color="black" src="images/black.png" alt="" />

然后代码简化为:http://jsfiddle.net/TrueBlueAussie/43txyxeg/

$('img.color').click(function(){
    $('#box').removeClass("black red blue green").addClass($(this).data('color'));
});

通常最好使用类来设置样式(正如您所做的那样,但是如果您只是更改颜色,则可以简化代码并丢弃样式:

http://jsfiddle.net/TrueBlueAussie/43txyxeg/2/

$('img.color').click(function(){
    $('#box').css({"background-color": $(this).data('color')});
});

注意:数据属性方法意味着您可以拥有任何颜色值(甚至是十六进制颜色):例如

http://jsfiddle.net/TrueBlueAussie/43txyxeg/5/

<img class="color" data-color="#123456" src="images/blah.png" alt="" />

答案 1 :(得分:0)

我想您希望能够在单击相应图像时更改div的颜色。你可以做什么

$('img.color').click(function(){
    $('#box').css('backgroundColor', this.src.split('/')[1].split('.')[0]);
});

当然,您需要将id更改为class,因为这是您使用它的方式。

答案 2 :(得分:0)

Example

您的代码存在一些问题,请查看示例。

我已更新您的html以使用类和数据属性。

<div id="box">BGCOLOR TO CHANGE HERE</div>
<br />
<img class="color-select" data-color="black" src="images/black.png" alt="" />
<img class="color-select" data-color="red" src="images/red.png" alt="" />
<img class="color-select" data-color="blue" src="images/blue.png" alt="" />
<img class="color-select" data-color="green" src="images/green.png" alt="" />

添加了需要Jquery的javascript。

$(document).ready(function() {
    $('.color-select').click(function() {
        $('#box').css("background",$(this).data("color"));
    });

});

答案 3 :(得分:0)

id元素不应包含空格 - 假设您的图像名称是有效的css颜色名称,如示例所示,您可以执行以下操作:

&#13;
&#13;
$(function (e) {
    $("img").click(function(){
        var color = this.src.substring(this.src.lastIndexOf('/')+1,this.src.lastIndexOf('.'));
        $("#box").css("background",color);
    })
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="box">BGCOLOR TO CHANGE HERE</div>
<br />
<img id="color black" src="images/black.png" alt="blabk" />
<img id="color red" src="images/red.png" alt="red" />
<img id="color blue" src="images/blue.png" alt="blue" />
<img id="color green" src="images/green.png" alt="green" />
&#13;
&#13;
&#13;