JavaScript更改类的背景颜色
JavaScript to change background color of class
我觉得我的头撞到了砖墙上,不知道我做错了什么,我写了一些JS从数组中随机选择一种颜色,然后我想把类的颜色改成这种颜色:
我也尝试过将类更改为仅class="button1"
,但仍然没有,我还添加了警报,直到changeElementColor
的最后一行,一切似乎都通过了ok。
此外,我更希望我可以使用类似changeElementColor(this.element)
的东西,而不是将其输入到HTML中,这可能吗?
var colorArray = ["#aa3333", "#33aa33", "#3333aa", "#aaaa33", "#33aaaa", "#aa33aa", "#aa6633", "#66aa33", "#33aa66"];
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
function chooseRandomColor() {
var randomInt = getRandomInt(0,colorArray.length);
return colorArray[randomInt];
}
function changeElementColor(elementString) {
alert(elementString);
var obj = document.getElementsByClassName(elementString);
alert(obj);
var color = chooseRandomColor();
alert(color)
obj.style.backgroundColor = color;
}
[class^="button"] {
background-color: #333333;
float: left;
margin: 5px;
color: #aaaaaa;
text-align: center;
display: table;
}
[class^="button"] span {
display: table-cell;
vertical-align: middle;
text-align: center;
}
.button1 {
background-color: #3333ff;
}
.sm-sq-butt {
font-size: 10px;
height: 60px;
width: 60px;
}
.md-sq-butt {
font-size: 20px;
height: 120px;
width: 120px;
}
<a href="#"><div onclick="changeElementColor('button1')" class="button1 md-sq-butt"><span>HOME</span></div></a>
谢谢你的帮助!
getElementsByClassName()返回一个元素集合,而不是一个元素,因此obj.style
将不可用。
因此,您需要访问集合中的每个元素并更改样式(使用循环)。
for (var i = 0; i < obj.length; i++) {
obj[i].style.backgroundColor = color;
}
演示:Fiddle
请尝试以下操作。
我已经使用jQuery事件和选择器在短行中完成了这一切。
var colorArray = ["#aa3333", "#33aa33", "#3333aa", "#aaaa33", "#33aaaa", "#aa33aa", "#aa6633", "#66aa33", "#33aa66"];
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
function chooseRandomColor() {
var randomInt = getRandomInt(0,colorArray.length);
return colorArray[randomInt];
}
$('.button1').click(function(){
changeElementColor('.button1');
});
function changeElementColor(elementString) {
alert(elementString);
var color = chooseRandomColor();
$(elementString).css('background-color',color);
}
[class^="button"] {
background-color: #333333;
float: left;
margin: 5px;
color: #aaaaaa;
text-align: center;
display: table;
}
[class^="button"] span {
display: table-cell;
vertical-align: middle;
text-align: center;
}
.button1 {
background-color: #3333ff;
}
.sm-sq-butt {
font-size: 10px;
height: 60px;
width: 60px;
}
.md-sq-butt {
font-size: 20px;
height: 120px;
width: 120px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#"><div class="button1 md-sq-butt"><span>HOME</span></div></a>
稍微修改了您的javascript,这应该可以工作了。
var colorArray = ["#aa3333", "#33aa33", "#3333aa", "#aaaa33", "#33aaaa", "#aa33aa", "#aa6633", "#66aa33", "#33aa66"];
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
function chooseRandomColor() {
var randomInt = getRandomInt(0, colorArray.length);
return colorArray[randomInt];
}
changeElementColor = function(elementString) {
console.log(elementString);
var obj = document.getElementsByClassName(elementString);
console.log(obj);
var color = chooseRandomColor();
console.log(color)
obj[0].style.backgroundColor = color;
}
[class^="button"] {
background-color: #333333;
float: left;
margin: 5px;
color: #aaaaaa;
text-align: center;
display: table;
}
[class^="button"] span {
display: table-cell;
vertical-align: middle;
text-align: center;
}
.button1 {
background-color: #3333ff;
}
.sm-sq-butt {
font-size: 10px;
height: 60px;
width: 60px;
}
.md-sq-butt {
font-size: 20px;
height: 120px;
width: 120px;
}
<a href="#">
<div onclick="changeElementColor('button1')" class="button1 md-sq-butt"><span>HOME</span>
</div>
</a>
如果我理解正确,您希望在单击时更改类的颜色。一个简单的方法是在单击元素时使用this
关键字,并将其传递到changeElementColor
函数中。
onclick="changeElementColor(this)"
然后访问:
function changeElementColor(elementString) {
var color = chooseRandomColor();
elementString.style.color = color //Changes the text color
elementString.style.backgroundColor = color //Changes the background color
}
这是小提琴:http://jsfiddle.net/k1s0zng5/3/
相关文章:
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何使用jquery更改html中的背景颜色
- Javascript对象类在单击时打开窗口进行颜色选择,并在更改时替换对象背景颜色
- JS幻灯片与CSS背景颜色变化
- DT数据表背景颜色为黑色,但仍有悬停和选择颜色
- Javascript通过列表项的函数和css来更改背景颜色
- Javascript没有从数组中选择背景颜色
- 使用圆中的数组更改背景颜色项目
- 如何用jquery动画改变背景颜色,就像一个过渡
- 使用jquery交换并保存背景颜色
- j查询如何设置/取消设置下拉菜单的背景颜色
- 使用angularjs根据时间更改背景颜色
- 设置Dojo量表的背景颜色
- javascript样式的背景颜色在设置时闪烁.ASP.NET
- 使用javascript更改任意文本的背景颜色
- 在用Javascript更改背景颜色后:hover don'不要改变颜色
- 图像内部的透明背景颜色不受影响
- jQuery mobile-动态更改ui页面背景颜色
- 切换按钮的背景颜色
- JavaScript更改类的背景颜色