Задать вопрос
@MariaM0479

Как выделить группу элементов в js?

Здравствуйте. Есть небольшие одинаковые квадраты. Нужно по щелчку на любой из них выделить такие же самые элементы только рядом стоящие. Я реализовала это, но как мне кажется слишком легко потому что очень много кода. Как вы считаете как нужно было сделать поиск этих одинаковых рядом элементов? Ниже код:
<div id="blockcolor">
	<div id="first">&#10027;</div>
	<div id="first">&#10027;</div>
	<div id="second">&#10052;</div>
	<div id="second">&#10052;</div>
	<div id="second">&#10052;</div>
	<div id="third">&#10027;</div>
	<div id="third">&#10027;</div>
	<div id="four">&#10052;</div>
	<div id="four">&#10052;</div>
	<div id="fife">&#10027;</div>
	<div id="fife">&#10027;</div>
	<div id="fife">&#10027;</div>
	<div id="six">&#10052;</div>
</div>

#first, #second, #third, #four, #fife, #six{
		width: 40px;
		height: 40px;
		border: 1px solid black;
	}
	#first, #third, #fife{
		background: yellow;
	}
	#second, #four, #six{
		background: pink
	}

window.onload = function() {
	var blockcolor = document.getElementById('blockcolor');
	var picFirst = document.querySelectorAll('#first');
	var picSecond = document.querySelectorAll('#second');
	var picThird = document.querySelectorAll('#third');
	var picFour = document.querySelectorAll('#four');
	var picFife = document.querySelectorAll('#fife');
	var picSix = document.querySelectorAll('#six');

	Array.from(blockcolor.querySelectorAll('#first')).forEach(function(e){
	e.addEventListener('click', function(){
		for (var i = 0; i < picFirst.length; i++) {
			picFirst[i].style.borderRadius = '50px';
			picFirst[i].style.transition = 'all 2s ease';
		}
	})
})

Array.from(blockcolor.querySelectorAll('#second')).forEach(function(e){
	e.addEventListener('click', function(){
		for (var i = 0; i < picSecond.length; i++) {
			picSecond[i].style.borderRadius = '50px';
			picSecond[i].style.transition = 'all 2s ease';
		}
	})
})

Array.from(blockcolor.querySelectorAll('#third')).forEach(function(e){
	e.addEventListener('click', function(){
		for (var i = 0; i < picThird.length; i++) {
			picThird[i].style.borderRadius = '50px';
			picThird[i].style.transition = 'all 2s ease';
		}
	})
})

Array.from(blockcolor.querySelectorAll('#four')).forEach(function(e){
	e.addEventListener('click', function(){
		for (var i = 0; i < picFour.length; i++) {
			picFour[i].style.borderRadius = '50px';
			picFour[i].style.transition = 'all 2s ease';
		}
	})
})

Array.from(blockcolor.querySelectorAll('#fife')).forEach(function(e){
	e.addEventListener('click', function(){
		for (var i = 0; i < picFife.length; i++) {
			picFife[i].style.borderRadius = '50px';
			picFife[i].style.transition = 'all 2s ease';
		}
	})
})

Array.from(blockcolor.querySelectorAll('#six')).forEach(function(e){
	e.addEventListener('click', function(){
		for (var i = 0; i < picSix.length; i++) {
			picSix[i].style.borderRadius = '50px';
			picSix[i].style.transition = 'all 2s ease';
		}
	})
})
}
  • Вопрос задан
  • 329 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
bubandos
@bubandos
bash'у, javascript'ую, php'лю, css'аю, html'каю
Во-первых, id не должны повторяться в рамках страницы.
Во-вторых, jsfiddle.net/anton4ept/t4Lx0k5d
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽