Смена цвета фона по нажатию на блок

136
08 сентября 2019, 09:40

Необходимо найти все div на странице и добавить каждому слушатель по клику ("click"). И при клике на div происходила смена цвета фона. Подскажите, что не так сделал

let elem1 = document.querySelectorAll('box'); 
 
elem1.forEach(function(document) { 
  document.addEventListener("click", function() { 
    this.style.backgroundColor = "black"; 
  }); 
});
.box { 
  margin: 10px; 
  display: inline-block; 
  width: 100px; 
  height: 100px; 
  border: 1px solid black; 
}
<div class="box"></div> 
<div class="box"></div> 
<div class="box"></div><br> 
<div class="box"></div> 
<div class="box"></div> 
<div class="box"></div>

Answer 1

Вы пропустили точку у селектора класса в querySelectorAll

let elem1 = document.querySelectorAll('.box'); 
 
elem1.forEach(function(document) { 
  document.addEventListener("click", function() { 
    this.style.backgroundColor="black";  
  }); 
});
.box { 
  margin: 10px; 
  display: inline-block; 
  width: 100px; 
  height: 100px; 
  border: 1px solid black; 
}
<div class="box"></div> 
<div class="box"></div> 
<div class="box"></div><br> 
<div class="box"></div> 
<div class="box"></div> 
<div class="box"></div>

Answer 2

[...document.querySelectorAll('.box')].forEach((s) => { 
  s.addEventListener('click', function() { 
    [...document.querySelectorAll('.box')].forEach((s) => { 
      s.classList.remove('black'); 
    }); 
    s.classList.contains('black') ? s.classList.remove('black') : s.classList.add('black'); 
  }); 
});
.black { 
  background: black; 
} 
 
.box { 
  margin: 10px; 
  display: inline-block; 
  width: 100px; 
  height: 100px; 
  border: 1px solid black; 
}
<div class="box"></div> 
<div class="box"></div> 
<div class="box"></div><br> 
<div class="box"></div> 
<div class="box"></div> 
<div class="box"></div>

Answer 3

var foo = document.querySelectorAll("div"); 
 
for(var i = 0; i < foo.length; i++) { 
  foo[i].addEventListener("click", (e) => { 
    e.currentTarget.style.background = "red"; 
  }); 
}
div { 
  border: 1px solid black; 
  width: 50px; 
  height: 50px; 
  margin: 10px; 
}
<div></div> 
<div></div> 
<div></div> 
<div></div> 
<div></div>

READ ALSO
EntityFramework Core. Трансляция Expression в SQL

EntityFramework Core. Трансляция Expression в SQL

Есть, например, вот такой запрос

112
Как подменить IP адрес отправителя на C#?

Как подменить IP адрес отправителя на C#?

Вопрос заключается в следующем: можно ли отправить простой TCP сокет с левым IP адресом? Возможно ли такое реализовать на C#? И если возможно,...

140