Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 每次单击后更改容器中的所有Div颜色_Javascript_Jquery_Html_Css_Bootstrap 4 - Fatal编程技术网

Javascript 每次单击后更改容器中的所有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

你好,我是javascript新手。每次单击时,我都试图更改容器中所有div的颜色

示例:第一次单击时,我希望所有div都显示为红色。第二次单击时,我希望所有div都显示为绿色

<!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>