Javascript 每次单击后更改容器中的所有Div颜色
你好,我是javascript新手。每次单击时,我都试图更改容器中所有div的颜色 示例:第一次单击时,我希望所有div都显示为红色。第二次单击时,我希望所有div都显示为绿色Javascript 每次单击后更改容器中的所有Div颜色,javascript,jquery,html,css,bootstrap-4,Javascript,Jquery,Html,Css,Bootstrap 4,你好,我是javascript新手。每次单击时,我都试图更改容器中所有div的颜色 示例:第一次单击时,我希望所有div都显示为红色。第二次单击时,我希望所有div都显示为绿色 <!doctype html> <html lang="en"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" con
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin="anonymous">
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" type="text/css" rel="stylesheet">
<!--jquery easing plugin-->
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<!--custom css---->
<link href="css/phcoding.css" type="text/css" rel="stylesheet">
<title>cliciks</title>
<style>
</style>
</head>
<body>
<div id="container" onclick="myFunction();">
<div id="div1">This is div 1</p>
<div id="div2">This is div 2</p>
<div id="div3">This is div 3</p>
</div>
<script>
function myFunction(){
let x = document.getElementById("container");
y=x.children;
for(let i = 0; i< y.length;i++){
y[i].style.color="red";
y[i].style.color="green";
}
}
myFunction();
</script>
</body>
</html>
陈词滥调
我是第一组
我是二组
我是第三组
函数myFunction(){
设x=document.getElementById(“容器”);
y=x.儿童;
for(设i=0;i
试试:
首先,您需要一个颜色映射:
var color = {
"1": "red",
"2": "green"
};
接下来,我们添加一个事件侦听器并初始化单击计数:
var clickCount = 0;
var container = document.getElementById("container");
container.addEventListener("click", function (e)
{
clickCount++;
container.querySelectorAll("div[id^=\"div\"]").forEach(function (element)
{
element.style.color = color[clickCount];
});
});
致以最诚挚的问候。这应该能回答您的问题 作为初学者,您可能会发现此资源很有用。
(函数(){
var clickHandler=函数(事件){
//选择您的目标,在本例中为所有div
var target=document.querySelectorAll('div');
//环游目标
对于(变量i=0;i
就像前面答案的混合体
<div id="container">
<div>This is div 1</div>
<div>This is div 2</div>
<div>This is div 3</div>
</div>
<script>
document.getElementById('container').addEventListener('click',function(e){
Array.from( this.querySelectorAll('div') ).forEach( div=>{
let colour;
switch( div.style.color ){
case '':colour='red';break; //default
case 'red':colour='green';break;
case 'green':colour='red';break;
}
div.style.color=colour;
})
});
</script>
我是第一组
我是二组
我是第三组
document.getElementById('container')。addEventListener('click',函数(e){
Array.from(this.querySelectorAll('div')).forEach(div=>{
让颜色;
开关(div.style.color){
大小写“”:color='red';break;//默认值
案例“红色”:颜色“绿色”;中断;
案例“绿色”:颜色为“红色”;中断;
}
div.style.color=颜色;
})
});
除非您特别需要子div的ID属性,否则可以删除它们,但必须确保开始标记和结束标记匹配-因此
…
不正确 列出颜色列表,然后循环使用它们。
例如:
$(“#更改颜色”)。单击(函数(){
var currentColor=$(“.con child”).css(“背景色”);
var colorList=[“rgb(255,0,0)”,“rgb(0255,0)”,“rgb(0,0255)”;
var next=colorList[($.inArray(currentColor,colorList)+1)%colorList.length];
$(“.con child”).css(“背景色”,下一步);
});代码>
.con子对象{
显示:块;
高度:100px;
宽度:100px;
背景色:红色;
边缘底部:30px;
}
如果HTML中有很多错误,请打开“”并用“”关闭它们。
在JS中,你做了一个无条件的循环,在这个循环中,你向元素传递一个“红色”样式,然后是一个“绿色”样式,在这种情况下,结果总是绿色的。
下面是修改后的HTML和JS
document.getElementById('container').addEventListener('click',myFunction)
函数myFunction(){
让divs=document.getElementsByClassName(“颜色”)
if(divs[0].style.color==“绿色”){
Array.prototype.map.call(divs,(div)=>{
div.style.color=“红色”
})
}否则{
Array.prototype.map.call(divs,(div)=>{
div.style.color=“绿色”
})
}
}
陈词滥调
我是第一组
我是二组
我是第三组
(function () {
var clickHandler = function (event) {
// Choose your target, in this instance all divs
var target = document.querySelectorAll('div');
// Loop through the targets
for (var i = 0; i < target.length; i++) {
// If the color is not red, make it red
if (target[i].style.backgroundColor != 'red') {
target[i].style.backgroundColor = 'red';
} else {
// If the color is red, it must be defacto green
target[i].style.backgroundColor = 'green';
}
}
};
// Every time a click happens on screen, clickHandler will fire
document.addEventListener('click', clickHandler, false);
}());
<div id="container">
<div>This is div 1</div>
<div>This is div 2</div>
<div>This is div 3</div>
</div>
<script>
document.getElementById('container').addEventListener('click',function(e){
Array.from( this.querySelectorAll('div') ).forEach( div=>{
let colour;
switch( div.style.color ){
case '':colour='red';break; //default
case 'red':colour='green';break;
case 'green':colour='red';break;
}
div.style.color=colour;
})
});
</script>